我有一个自定义规则,应该通过验证此依赖的其他输入来检查某些依赖项。当我做所有其他输入的验证似乎被忽略。
这是我的自定义验证规则:
jQuery.validator.addMethod("checkDependencies", function (value, element) {
var valid1 = jQuery('form#add-lottery-form').validate().element('#input-1');
var valid2 = jQuery('form#add-lottery-form').validate().element('#input-2');
if (valid1 && valid2) {
return true;
} else {
return false;
}
}, 'dependencie error');
我创建了一个jsfiddle来显示我的问题:
http://jsfiddle.net/AQcrW/
重现的步骤:
重新播放小提琴
这是我的错还是jQuery验证中的错误?
答案 0 :(得分:1)
经过一些调试和概述插件代码我有一个解决我的问题的方法。我扩展了验证器插件,以便能够调用内部.check(元素)函数。这个函数只返回true / false。它不是一个完美的解决方案,因为它在表单提交上做了两次,但至少它到目前为止工作..所以这里是我添加的代码:
无需代码 - 阅读编辑!
jQuery.extend(jQuery.validator.prototype, {
check: function (element)
{
return this.check(element);
}
});
这是工作的fidde:
http://jsfiddle.net/HrPRL/
跟随我的想法,也许看看即将进行的讨论:
https://github.com/jzaefferer/jquery-validation/issues/579
修改强>
正如我现在意识到的那样,非常酷的 jQuery扩展没有任何影响。
因为.check()方法是可以访问它的原型对象的一部分。所以不需要上面的代码。
编辑2:
这就是我最终的结果。它有效,但我认为有些东西可以优化
有什么更好的想法吗?
http://jsfiddle.net/HrPRL/6/
我已经完成了..这足以满足我的意图:http://jsfiddle.net/HrPRL/8/