我正在使用jquery validation插件。当我使用required(dependency-expression)时,我注意到了 required( dependency-expression )无法正常运作。如上所述我试过
$("#flight_availability").validate({
rules: {
Trip: { required: true },
DepartDate: { required : "#OneTrip:checked" },
Origin: { required:"#OriginId:blank" }
},
});
在上面提到的代码中,代码DepartDate: { required : "#OneTrip:checked" },
工作正常,但Origin: { required:"#OriginId:blank" }
不起作用。
代码有什么问题?我用过萤火虫。它没有显示任何错误。甚至也使用了验证调试选项,但是:(
答案 0 :(得分:2)
根据OP的评论:
“即使OriginId为空(空白),它也会将其验证为真”
是的,这正是你编程的方式。
Origin: {
required: "#OriginId:blank"
}
上面的代码表示,当Origin
字段留空时,required
字段仅为#OriginId
。使用#OriginId:filled
,此逻辑表示如果填写Origin
,则#OriginId
字段必须为空。如果这不完全正确,则可以使用:blank
选择器代替。
如果您想要相反的行为,请改用:filled
选择器。
Origin: {
required: "#OriginId:filled"
}
否则,这是一个使用名为empty
的自定义方法的演示,根据您的评论工作:“因此,如果OriginId
为空,则表示Origin
值(任何)是无效“。
$(document).ready(function () {
$.validator.addMethod('empty', function (value, element) {
return (value === '');
}, "This field must remain empty!");
$("#flight_availability").validate({
rules: {
Trip: {
required: true
},
DepartDate: {
required: "#OneTrip:checked"
},
Origin: {
empty: {
depends: function (element) {
return $("#OriginId").is(":blank")
}
}
}
}
});
});
答案 1 :(得分:0)
可能是jQuery puesdo选择器尝试使用:empty而不是:blank。