【问题标题】:jQuery Validation Plugin: How to test for valid and only test for validjQuery Validation Plugin:如何测试有效且仅测试有效
【发布时间】:2010-12-26 21:09:48
【问题描述】:

所以我试图找到一种方法,让 jQuery 验证插件在表单无效时简单地返回 false,而不显示错误消息或执行任何其他操作。但事实证明,这比应有的难度更大。我正在这样设置验证:

var validator = $journalForm.validate({
    rules: {
        EntryDate: { required: true, date: true },
        EvalStatus: { required: true },
        EvalState: { required: true },
        ActivityType: { required: true },
        Duration: { required: true },
    }
});

我正在测试该表单是否有效:

if ($form.valid()) {
    alert("success");
}
else {
    alert("fail");
}

问题是,当它遇到上面的 if 语句时,如果表单无效,它甚至不会到达 else。相反,它只显示错误。但是,如果表单有效,它会到达警报并弹出“成功”。当表单不通过规则时,我怎样才能从插件返回一个简单的“false”,而让它什么都不做?

谢谢。

【问题讨论】:

    标签: jquery plugins validation


    【解决方案1】:

    http://docs.jquery.com/Plugins/Validation/validate#options

    据此,您可以将 invalidHandler 回调函数传递给 validate()。我不知道那是在消息显示之前还是之后,但这是值得一看的。

    【讨论】:

      【解决方案2】:

      您可以为此使用showErrors option,向它传递一个什么都不做的函数,如下所示:

      $journalForm.validate({
        rules: {
          EntryDate: { required: true, date: true },
          EvalStatus: { required: true },
          EvalState: { required: true },
          ActivityType: { required: true },
          Duration: { required: true },
        },
        showErrors: function() { }
      });
      

      这将防止正常显示时出现错误,然后您可以这样做来获取状态:

      alert($journalForm.valid() ? "success" : "fail");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-30
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 2012-10-25
        相关资源
        最近更新 更多