jQuery Validation插件 - 检查字段是否有效(但不显示验证消息)

时间:2012-09-18 15:53:46

标签: jquery jquery-validate

我正在使用jQuery验证插件并定义了表单验证函数,如下所示。根据一些用户操作,我正在运行自定义JS功能,在该功能中,我只想检查电子邮件和电话字段是否有效。 但是我不想验证它们,即我不想显示验证错误,我只需要检查它们的值是否有效。

这样的东西
$('#email').isvalid();

我已经检查了Validator的element方法但是验证了元素,而不仅仅是检查它的值是否有效。所以换句话说,我正在寻找一种以编程方式运行规则的方法。任何帮助表示赞赏!

下面的表单验证器功能:

var validator = $("#olForm").validate({
    rules: {
        "email": {
             required: true,
             email: true
        },
        "phone": {
             required: true,
             digits: true,
             minlength: 9,
             maxlength: 11
        }
    }
});

4 个答案:

答案 0 :(得分:9)

回应原来的jsfiddle,请看这个版本:

http://jsfiddle.net/33PGQ/23/

这可以通过三种方式进行修改:首先,在底部,将一个简单的布尔值设置为等于两个字段是否有效(然后提醒)。当每个valid()调用返回一个布尔值时,您可以简单轻松地检查所有表单元素的有效性。

其次,使用没有内部代码的自定义showErrors函数扩展validate选项。此函数会覆盖验证错误的默认行为,以便在检查字段的内部有效性并处理字段的有效性时,不会显示实际的错误文本,从而启用所有验证规则,但不会显示验证结果。

最后,虽然在初始问题中未明确请求,但我添加了可选的“onsubmit:false”设置,该设置会覆盖validate调用的阻止表单提交的默认行为,除非成功检查所有验证规则。如果你想阻止提交(我认为你会这样做),这可以删除,但我认为这是一个有用的功能要注意。我把它包括在这里,以防你有一个特殊情况,即使表格的验证失败,你也希望表格提交。

绝对值得查看验证的选项列表;您可以通过多种方式调整验证器的行为,以满足您的需求。

答案 1 :(得分:6)

有一个未记录的方法 check(),它专门执行此操作而不实际设置字段样式或显示任何错误:

var validator = $('form').validate();
if( validator.check('#email') ){
  // this field is valid but no styling was applied
}

答案 2 :(得分:2)

handy method called .checkForm()(截至2015年9月未记载),这使得这很容易。与调用.valid()不同,调用它时不会显示表单错误:

// Returns a boolean
$('form').validate().checkForm();

答案 3 :(得分:1)

听起来好像在寻找.valid()方法。请注意,您仍然必须对整个表单运行validate()以初始化窗口小部件。

http://docs.jquery.com/Plugins/Validation/valid