我最近碰到過兩次類似的問題,並花了很多時間試圖弄清楚,所以我將在這裏留下一個簡單的解決方案。如果主持人認爲這不是正確的地方,請讓我知道。
$(document).ready(function() {
$.validator.addMethod("numberEqualTo", function (value, element, parameter) {
return parseInt(value) === parseInt(parameter);
}, "Values must match");
$("#example2").validate({
focusInvalid: false,
onkeyup: true,
onfocusout: true,
errorElement: "div",
errorPlacement: function (error, element) {
error.appendTo("div#errors");
},
rules: {
"example2-fullname": {
required: true,
minlength: 5
},
"example2-phone": {
required: true,
number: true
},
"example2-zip": {
required: true,
number: true,
rangelength: [3, 5]
},
"example2-value": {
required: true,
number: true,
numberEqualTo: 10
}
},
messages: {
"example2-fullname": {
required: "You must enter your full name",
minlength: "First name must be at least 5 characters long"
},
"example2-phone": {
required: "You must enter your phone number",
number: "Phone number must contain digits only"
},
"example2-zip": {
required: "You must enter your zip code",
number: "Zip code must contain digits only",
rangelength: "Zip code must have between 3 to 5 digits"
},
"example2-value": {
required: "You must enter your value",
number: "Value must be a digit",
numberEqualTo: "Value must be equal to 10"
}
}
});
});
爲什麼:
的錯誤,而在運行此示例代碼,會發生什麼?出於某種原因,如果您明確指定:
onkeyup: true,
onfocusout: true,
程序會拋出上述異常。當您將上面的ANY或BOTH選項設置爲'true'時,就是這種情況。另一方面,如果您將BOTH設置爲「false」或將ONE設置爲「false」並移除另一個,則它將按預期工作。
最重要的是:如果您刪除或註釋掉了這些選項中的任何一個,那麼您刪除的選項將被設置爲默認值,這是'true'並且W'T會引發任何錯誤,因此可以自定義驗證你只需要記住不要明確地將這些選項設置爲'true'
我希望這會幫助某人,儘管這個問題對於這個特定用戶的實際問題已經
你用[tag:jquery-validation-engine]標記了這個問題,這是一個完全不同的插件,已編輯,謝謝 – Sparky 2013-03-28 15:21:59