6

我想为 jQuery validate 添加一个自定义规则,虽然我检查了文档,但我无法找到如何执行此操作。

我想遍历一组隐藏的表单字段。如果字段值为“X”,那么我想将错误类附加到字段。

所以本质上是这样,但作为规则添加到 jQuery 验证中。

$(".myHiddenField").each( function() {
   if($(this).val() == "x") {
    $(this).closest(".foo").appendClass("error");
   }
});
4

3 回答 3

12

您可以使用addMethod()

$.validator.addMethod('yourRuleName', function (value, element, param) {
    //Your Validation Here

    return isValid; // return bool here if valid or not.
}, 'Your error message!');


$('#myform').validate({
    rules: {
        field1: {
            yourRuleName: true
        }
    }
});
于 2013-07-10T02:55:20.570 回答
1

如果你想在不添加实际规则的情况下显示一些自定义错误消息,那么你可以使用showErrors()方法,但如果你正在处理隐藏字段,它可能不起作用

var validator = $( "<form-selector>" ).validate();

var errors = {};
$(".myHiddenField").each( function() {
    var $this = $(this);
    if($this.val() == "x") {
        errors[$this.attr('name')] = 'Some error message';
    }
});

validator.showErrors(errors);
于 2013-07-10T02:52:00.680 回答
0
$.validator.addMethod("NOTx", function(element,value) {
    return  value != "x";
}, 'warning word"!');
于 2013-07-10T03:02:29.487 回答