Javascript 在自定义方法中使用.element(element)时,jQuery验证失败
我有一个自定义规则,它应该通过验证这个依赖的其他输入来检查一些依赖关系。当我做类似的事情时,所有其他输入的验证似乎都被忽略了 这是我的自定义验证规则:Javascript 在自定义方法中使用.element(element)时,jQuery验证失败,javascript,jquery,validation,jquery-validate,Javascript,Jquery,Validation,Jquery Validate,我有一个自定义规则,它应该通过验证这个依赖的其他输入来检查一些依赖关系。当我做类似的事情时,所有其他输入的验证似乎都被忽略了 这是我的自定义验证规则: jQuery.validator.addMethod("checkDependencies", function (value, element) { var valid1 = jQuery('form#add-lottery-form').validate().element('#input-1'); var valid2 = jQue
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');
我创建了一个JSFIDLE来显示我的问题:复制步骤:
这是我的错还是jQuery验证中的错误?经过一些调试并概述插件代码后,我找到了解决问题的方法。我扩展了验证器插件,以便能够调用internal.check(element)函数。此函数仅返回true/false。这并不是一个完美的解决方案,因为它在表单提交时做了两次某些事情,但至少到目前为止它是有效的。。下面是我添加的代码:
无需代码读取编辑
jQuery.extend(jQuery.validator.prototype, {
check: function (element)
{
return this.check(element);
}
});
这是正在工作的fidde:要了解我的想法并查看即将到来的讨论:
编辑:
正如我现在意识到的,我非常酷的jQuery扩展没有任何效果
因为.check()方法是prototype对象的一部分,所以您已经可以访问它了。因此,不需要上面的代码。
编辑2:
这就是我的结局。它正在工作,但我认为有些东西可以优化。
有更好的办法吗
我完了。。这就够我的意思了:@salexch这对你有用吗?对我来说不是。。我的意思是你能得到错误信息“dependencie error”吗?是的。我改变了规则,请看。。它仍然不能正常工作。。验证测试输入1轮胎输入2 ytr请仅输入数字。输入3 ytr请只输入数字。输入4645个从属项error@salexch你能给我举个例子吗?我看到的唯一一件事(我已经知道)是,在更正依赖项错误后,您没有聚焦无效字段。。我要做这一件这一件。。我不认为它比你的好。。它更一般,我真的很喜欢这个,但又有一个问题。在我关于github的第二篇文章(链接在上面)中,我遇到了这个问题。valid()正在重置所有发现的错误,以便在没有“input3”的有效数据的情况下提交表单。谢谢分享你的方法!!那还是不行。尝试:在第四个输入中输入文本。在第一个和第二个输入中输入文本。单击提交