在我的表单中,我允许在文本框中输入最小人数和最大人数。我已经用最小参数进行了验证,它应该是最小值1。但是,我如何验证最小人员字段也应该小于最大人员,反之亦然。此外,最低人数和最高人数不应相同。有人能帮我做这件事吗?提前感谢!
$("#frmCont").validate({
rules:{
name:{ required:true},
min_persons:{ digits:true,min:1 },
max_persons:{ digits:true,min:1 },
duration:{ digits:true,min:1 },
price_per_person:{ digits:true,min:1 }
}
});
});
您可以编写一个函数,返回规则的参数,使其依赖于另一个字段的值或状态。
$("#frmCont").validate({
rules: {
min_persons: {
required: function(element) {
return $('[name="max_persons"]').is(':filled');
},
digits: true,
min: 1
},
max_persons: {
required: function(element) {
return $('[name="min_persons"]').is(':filled');
},
digits: true,
min: function(element) {
return parseInt($('[name="min_persons"]').val()) + 1;
}
},
....
如果填写了另一个字段,则每个字段仅为
required
。max_persons
字段上的min
规则的参数由min_persons
字段的值确定。这两个字段永远不可能相等,因为其中一个字段上有一个
min
规则,它总是比另一个字段大一个数字。
工作演示:jsfidd.net/vxtjbqod/