gpt4 book ai didi

javascript - 在自定义方法中使用 .element(element) 时 jQuery 验证失败

转载 作者:行者123 更新时间:2023-11-29 15:44:14 27 4
gpt4 key购买 nike

我有一个自定义规则,它应该通过验证这个依赖的其他输入来检查一些依赖关系。当我做类似的事情时,所有其他输入的验证似乎都被忽略了。

这是我的自定义验证规则:

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/

重现步骤:

  1. 在 input4 中输入一些内容(此输入是带有自定义规则“checkDependencies”的输入)[JavaScript 部分的第 1 行]
  2. 由于 JS 第 2 行和第 3 行中的调用,显示了 input1 和 input2 上的错误
  3. 将正确的值插入到 input1 和 input2
  4. 点击提交
  5. !!认识到 input3 没有被验证!!

重新运行 fiddle

  1. 点击提交
  2. 所有字段都按预期验证

这是我的错还是 jQuery 验证中的错误?

最佳答案

经过一些调试和概述插件代码后,我找到了解决问题的方法。我扩展了验证器插件以能够调用内部 .check(element) 函数。这个函数只返回真/假。它不是一个完美的解决方案,因为它在表单提交时做了两次,但至少到目前为止它是有效的。所以这是我添加的代码:

无需代码 - 阅读编辑!

jQuery.extend(jQuery.validator.prototype, {
check: function (element)
{
return this.check(element);
}
});

这里是工作文件:
http://jsfiddle.net/HrPRL/

跟随我的想法,也许看看即将到来的讨论:
https://github.com/jzaefferer/jquery-validation/issues/579

编辑:
正如我现在意识到的那样,我的非常酷 jQuery 扩展没有任何效果..
因为 .check() 方法是原型(prototype)对象的一部分,您可以访问它。所以不需要上面的代码。

编辑 2:
这就是我最终得到的。它工作正常,但我认为有些东西可以优化。
有什么更好的想法吗?
http://jsfiddle.net/HrPRL/6/
我完成了..这足以满足我的意图:http://jsfiddle.net/HrPRL/8/

关于javascript - 在自定义方法中使用 .element(element) 时 jQuery 验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14232847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com