如何使用addClassRules向类添加消息

dad*_*and 19 jquery jquery-validate

我正在使用jQuery Validate来验证具有大量重复数据行的页面.由于空间有限,每行都有自己的验证摘要.

我使用addClassRules将验证规则应用于页面,但默认错误消息在摘要中过于通用(例如"字段是必需的,字段是必需的"等).

例:

jQuery.validator.addClassRules({
amount: {
    required: true,
    range: [0, 2000000]
},
comment: {
    maxlength: 51
},
owner: {
    notFirstOption: true
},
A: {
    required: function (element) {  
        return getParentElement($(element), "tr").find(".colB input.B").val().length > 0;
    },
    digits: true
}});
Run Code Online (Sandbox Code Playgroud)

您可以为每个验证类中的规则应用自定义消息吗?理想情况下,我喜欢这样的事情:

jQuery.validator.addClassMessages({
    amount: {
        required: "Amount is required",
        range: "Amount must be between 0 and 2,000,000"
    },
    comment: {
        maxlength: "Comment may be a maximum of 51 characters"
    },
    owner: {
        notFirstOption: "Please select an owner"
    },
    A: {
        required: "A is required if B is entered",
        digits: "A must be numeric"
    }});
Run Code Online (Sandbox Code Playgroud)

提前感谢您提供的任何帮助!

Mar*_*man 29

在文档中,答案是为要调用的方法添加别名并添加自定义消息.

检查 "重构规则"标题下的参考:

// alias required to cRequired with new message
$.validator.addMethod("cRequired", $.validator.methods.required,
"Customer name required");
// alias minlength, too
$.validator.addMethod("cMinlength", $.validator.methods.minlength, 
// leverage parameter replacement for minlength, {0} gets replaced with 2
$.format("Customer name must have at least {0} characters"));
// combine them both, including the parameter for minlength
$.validator.addClassRules("customer", { cRequired: true, cMinlength: 2 });
Run Code Online (Sandbox Code Playgroud)

  • 您可能需要使用$ .validator.format()代替$ .format (2认同)

Gow*_*wri 6

这可以使用下面的代码完成,

  $.validator.messages.accept = 'File must be JPG, GIF or PNG';

    $.validator.addClassRules("files", {            
      accept : "png|jpe?g|gif",  
      filesize : 2000000
    });
Run Code Online (Sandbox Code Playgroud)