[英]jQuery validation depends rule not working
我正在開發一個注冊表單,並使用jQuery驗證來檢查表單。 我想驗證出生日期,這樣他們就不能選擇例如2月31日。 我的代碼是:
birthday: {
required: true,
min: 1,
max: {
depends: function(element) {
switch (parseInt($('#birthmonth').val())){
case 2:
maxday = 29;
break;
case 4:
case 6:
case 9:
case 11:
maxday = 30;
break;
default:
maxday = 31;
}
return maxday;
}}
},
switch
正常工作,並且該函數每個月都返回正確的值,但是即使我選擇了第7天之后的任何月份,驗證仍然顯示無效的選擇。我試圖將返回值轉換回字符串,但仍然無法正常工作。
在自定義方法中,這對您會更好一些。 通過使用addMethod
方法創建新規則。
$(document).ready(function () {
$('#myform').validate({
rules: {
birthday: {
required: true,
min: 1,
mymax: ['#birthmonth']
}
}
});
jQuery.validator.addMethod('mymax', function (value, element, params) {
switch (parseInt($(params[0]).val())) {
case 2:
maxday = 29;
break;
case 4:
case 6:
case 9:
case 11:
maxday = 30;
break;
default:
maxday = 31;
}
params[1] = maxday; // simply used for populating message at {1}
return parseInt(value) <= maxday;
}, "Please enter a value less than or equal to {1}");
});
工作演示: http : //jsfiddle.net/4Uv8Y/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.