具有自定義驗證的基本HTML5表單。如果提交的值不是數字,瀏覽器應顯示錯誤消息「字段必須是數字」。如果輸入「abc」並按提交(或按回車鍵),則該字段被標記爲無效,但錯誤消息不會顯示。再次按提交(或按回車),它會顯示消息。這種雙重提交行爲出現在Windows和OS X上的最新版本的Firefox,Chrome,Safari和IE上。您會注意到第一次提交時會顯示默認的「此字段是必需的...」消息,並且不會顯示奇怪的行爲。自定義HTML5表單驗證最初未顯示自定義錯誤
順便說一句,我深知這驗證不會在舊版本的IE瀏覽器的工作和輸入字段可以有一個類型的number
會自動完成驗證;這是我的問題的簡化例子,僅用於演示目的。
Javscript
var form = document.getElementById("form");
var field = document.getElementById("field");
form.onsubmit = validateForm;
function validateForm() {
if(isNaN(field.value)) {
field.setCustomValidity("Field must be a number.");
} else {
return true;
}
return false;
}
HTML
<form id="form">
<label for="field">Favorite number</label>
<input type="text" id="field" required>
<input type="submit">
</form>
堅實的答案。但是,如果您想基於用戶遇到的特定問題進行自定義消息傳遞?例如,如果它是電話號碼,並且該字段爲7位數字,則消息可能是「請輸入區號」。或者這種性質的東西。 – Jason 2014-10-28 16:58:31
@Jason在這種情況下,你可能想把一些邏輯放在'onchange'事件處理程序中,每當該字段的內容發生變化時它就會被觸發。 – 2014-10-28 17:01:30
http://stackoverflow.com/questions/13798313/set-custom-html5-required-field-validation-message – Jason 2014-10-28 17:06:09