首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery验证:让远程验证再次运行,而不更改相关字段的值。

jquery验证:让远程验证再次运行,而不更改相关字段的值。
EN

Stack Overflow用户
提问于 2011-04-08 08:26:43
回答 1查看 1.1K关注 0票数 5

我有一个远程验证器设置如下

代码语言:javascript
复制
remote: {
  type: "POST",
  url: "/some/url",
  data: {
    value: function() {
      return $("#field").val();
    },
    bypass: function() {
      if ($("input:radio[name=toggleBypass]:checked").val() == "yes"){
        return "yes";
      }
      return "no";
    }
  }
}

如果旁路是“是”,则ajax总是返回true。

它工作在模糊和提交,但如果我重置单选按钮值然后提交,它不会重新验证。

例如,

  1. 将toggleBypass设置为"yes"
  2. Set字段为无效值
  3. 运行$("form").validate().element("# field ")。
  4. 将toggleBypass设置为“no”,
  5. 运行$("form").validate().element("#field")。它通过了,因为遥控器没有重新提交。

有什么办法让它正常工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-10 09:57:03

如果您查看jquery.validate.js中的第897行,您将看到一个优化:

if ( previous.old !== value ) {

如果字段的值没有更改,这一行将阻止新的验证。由于您使用的是validate().element(),所以它只检查该字段,而不是整个表单,因此它不会检测到toggleBypass中的变化。

要么从jquery.validate源中删除此检查,要么检查整个表单,而不仅仅是该字段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5592454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档