首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用addClassRules向类添加消息

如何使用addClassRules向类添加消息
EN

Stack Overflow用户
提问于 2010-07-14 22:44:47
回答 5查看 32.2K关注 0票数 20

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

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

示例:

代码语言:javascript
复制
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
}});

您是否可以为每个验证类中的规则应用自定义消息?理想情况下,我想要的是:

代码语言:javascript
复制
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"
    }});

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-07 00:36:49

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

“重构规则”标题下的Check the reference

代码语言:javascript
复制
// 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 });
票数 33
EN

Stack Overflow用户

发布于 2014-12-10 21:50:59

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

代码语言:javascript
复制
  $.validator.messages.accept = 'File must be JPG, GIF or PNG';

    $.validator.addClassRules("files", {            
      accept : "png|jpe?g|gif",  
      filesize : 2000000
    });
票数 6
EN

Stack Overflow用户

发布于 2010-07-14 23:37:55

我已经想出了一个相当令人发指的解决方案,但希望有更多的时间来获得更干净的解决方案……

无论如何,通过jQuery元数据分配消息,我能够为每个类定制它们。

代码语言:javascript
复制
class="amount {validate:
                {messages:
                  {required:'Amount is required',
                   range: 'Amount must be between 0 and 2,000,000',
                   digits: 'Amount must be numeric'}
                }
              }"

对网格行中的每个字段执行...and等操作。

我将考虑扩展“addClassRules”方法以接受messages参数,但现在它可以工作了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3247305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档