我正在尝试使用JQuery验证插件验证输入字段。 数值范围[range()]取决于选择框的值。 例如,当选择框为“A”时,范围应该在1到10之间。但是当它的“B”时,它应该在5到10之间,依此类推。我试着读出选择框的值并调用函数来验证输入,并传递最小值。
这样可行但是当你选择“A”并且你认为嗯它应该是“B”时它仍然被验证为“A”。 我在考虑'依赖',但我只认为它适用于'必需'。
$("#theSelectID").change(function () {
var theValueOfSelected = $('#LeverancierID :selected').text();
switch(theValueOfSelected){
case "A":
minval(1, "Null");
break;
case "B":
minval(5, "PRCC");
break;
}
function minval(theVal, theLev){
$("#AddInkoop").validate({
rules: {
Aantal: {
required: true,
range: [theVal, 999]
}
},
messages: {
Aantal:{
required:"required",
range: "give a number between "+ theVal +" and 999."
}
}
});
}
答案 0 :(得分:0)
我认为你会倒退。每次选择框更改时,不要更改验证设置,而是设置验证规则,以便使用反映选择框当前值的函数计算最小值。请注意,您可能希望更新一些描述性文本,以指示选择更改时可接受的范围。
$("#AddInkoop").validate({
rules: {
Aantal: {
required: true,
range: function() { return [ $('#LeverancierID').val(), 999 ]; }
}
},
messages: {
Aantal:{
required:"required",
range: "the value is outside the acceptable range"
}
}
});