整个表单的Jquery验证规则

时间:2014-12-17 20:44:17

标签: jquery jquery-validate

在Jquery Validation插件中,我们使用元素规则。 有没有办法可以将表单的规则附加到特定元素?

2 个答案:

答案 0 :(得分:2)

不,答案是它不能那样工作。将为每个输入元素评估规则,因为这是输入数据的位置。

否则,你的OP不清楚你需要做这件事的原因。

根据your comment

  

“我想检查两个元素并查看它们是否具有特定值。我可以将规则附加到检查验证逻辑的元素之一。但我想知道我可以以任何其他方式执行此操作。 “

  • 您可以使用自己的验证功能使用the addMethod() method创建自定义规则,该函数将两个字段与值,彼此或任何您想要的值进行比较。

  • 您可以在一个或多个字段中声明此新规则,与声明任何其他标准规则或方法相同。

  • 根据需要,您可以选择使用the groups option 类似的重复错误消息合并为一个。

答案 1 :(得分:0)

我有点发现了一种带有正式验证器的破解方式。希望这对那些只想运行返回true或false来确定有效性的方法的人很有帮助。

在我的表单中,我添加了两个元素:
首先,我要在哪里宣布错误。

<div id="customErrorPlacement"></div>

第二,我添加了一个新的隐藏输入元素

<input class="hidden" type="text" name="bevalid"></input>

在我的js文件中

我的表单有效功能

var myCustomValidFunc = function() {
   //test form here:  return true or false;
}

我在调用form.validate()之前将自定义函数添加到规则集中

$.validator.addMethod('myCustomValidFunc', myCustomValidFunc, $.validator.format("This form isn't right; here's how to fix it"));

然后以我的表格验证选项:

  rules: {
         .....
        'bevalid': {
            "myCustomValidFunc": true
        }
    },
    errorPlacement: function(error, element) {
        if (element.attr("name") == 'bevalid') {
             error.insertBefore($("#customErrorPlacement"));
        } else {
            error.insertAfter(element);
        }
    }
}