2016-07-26 56 views
1

當輸入與模式屬性指定的模式不匹配時,瀏覽器在該字段的工具提示中顯示「您必須使用此格式:」。隱藏ASP.NET/MVC中定義的HTML5驗證工具提示

我無法隱藏這個工具提示信息,我可以嗎?因爲即使當我寫

@Html.TextBoxFor(model => model.tbMyNumber, new { @pattern = "[0-9]{6,}", title="" }) 

它仍然帶來「你必須使用這種格式:」在這個領域的工具提示。 我該如何避免這種情況?

+0

如果你不想要任何消息,你可以刪除模式屬性。如果您試圖隱藏它,那麼想知道爲什麼他們不能提交表單的用戶會感到困惑。這就是說......當用戶試圖提交與你的模式不匹配的東西時,你想要發生什麼? – smerny

+0

如果輸入無效,則該字段已標記爲紅色(淺紅色背景,深紅色邊框),並帶有CSS。標準驗證消息也是隱藏的。只是工具提示不會消失,我不明白爲什麼。 – SchweizerSchoggi

回答

0

我想這是不是您所期望的答案是什麼,但你也許可以用JavaScript

HTML周圍正常工作的問題: *字符串必須至少6位數

<br/> 

<input type="text" onkeyup="isNumber(this)" onblur="lengthValidation(this)"> 

的Javascript

function isNumber(textbox) 
{ 
    textbox.value = textbox.value.replace(/[\D]+/, ''); 
} 

function lengthValidation(textbox) 
{ 
    if (textbox.value.length < 6) { 

    document.getElementById("error").style.display = 'block'; 

    } else { 

    document.getElementById("error").style.display = 'none'; 
    } 
} 

測試它在這裏:https://jsfiddle.net/mvxeous4/1/

+0

是的,這個示例有效,但是因爲我想用HTML5模式和驗證來解決它,所以它目前不是解決所描述問題的解決方案。 – SchweizerSchoggi

1

我不認爲有沒有辦法做到你想要的,而無需添加JavaScript。一個簡單的替代辦法是用JavaScript來驗證(下面的例子使用jQuery示出),而不是...

$('#myform').submit(function() { 
    if(!/^[0-9]{6,}$/.test($('#mytext').val())) { 
    return false; 
    } 
}); 

這將防止形式從提交如果值不匹配圖案...而不顯示工具提示...只要確保你有一個選擇,所以用戶不會懷疑他們爲什麼不能提交表格。