jQuery验证条件规则使输入永远无效-valid始终返回0
我对jQuery验证条件规则有问题 我为元素指定条件规则,如下所示:jQuery验证条件规则使输入永远无效-valid始终返回0,jquery,jquery-validate,Jquery,Jquery Validate,我对jQuery验证条件规则有问题 我为元素指定条件规则,如下所示: var validatorSettings = $("form").data('validator').settings; validatorSettings.rules = $.extend({}, validatorSettings.rules, { TimeFrameAmount: { number: function() { return $("select[name='Tim
var validatorSettings = $("form").data('validator').settings;
validatorSettings.rules = $.extend({}, validatorSettings.rules, {
TimeFrameAmount: {
number: function() { return $("select[name='TimeFrameUnits']").val() === "true"; },
required: function() { return $("select[name='TimeFrameUnits']").val() === "true" } ;
}
});
问题是当我提交表单时,$(“表单”).valid()返回0
我跟踪查看$(“input[name='TimeFrameAmount'])。valid()
是表单中唯一返回0的元素,因此是导致表单验证失败的元素
我进一步追踪到,$(“input[name='TimeFrameAmount']).valid()
始终返回0,并导致表单验证失败,即使条件规则函数都返回false
我通过在条件规则函数中设置断点来检查这一点,然后从Firefox控制台触发对$(“input[name='TimeFrameAmount']”)的调用。valid()
我的条件规则都返回false和$(“input[name='TimeFrameAmount'])。valid()
仍然返回0,表单验证失败
需要注意的一点是,当我的条件规则返回false时,中的errorPlacement
回调不会被触发,这是有意义的,因为无验证=无错误
事实上,在我验证表单时,输入甚至有“valid”类(之后仍然有)
但是,这两种情况都不能阻止valid()
方法返回0
如何让表单通过验证?添加条件规则的正确语法是:
TimeFrameAmount: {
required: {
depends : function () {
//check conditionality
}
}
}
这是哪个验证插件?规则看起来很奇怪。jQuery验证。请参见kjetilh回答中的评论。您能否确认这些函数是否用于您所指的规则逻辑或规则条件?我在“jquery验证”谷歌搜索中获得了50万条搜索结果……请在标记时更加小心[jquery验证]
和[jquery验证引擎]
是两个完全不同的插件。对不起,我不知道。我想你误解了,那些函数具体在什么时候评估规则,如果它们返回false,那么在验证器中注册的“必需”规则将不会执行。它不应该定义实际的规则。。。使用addMethod()向验证程序注册的。这就是我理解它的方式,我相信情况确实如此。“true”是选择框中某个选项的实际值,该选项将使相关输入成为必需输入,也可以是“yes”或其他任何内容。换句话说,当“TimeFrameUnits”为“true”时,则需要“TimeFrameAmount”。啊,我明白了。我一定是误会了。你应该包括一个链接到你正在使用的插件,结果我们都误解了。正确的语法是TimeFrameAmount:{required:{depends:function(){//check conditionality}}。请编辑你的答案,我来打分。谢谢