我们有一条规则,我们所有的验证消息都必须包含在摘要中,因此默认的“此字段是必需的”不会删除它,因为消息在摘要中丢失了它们的上下文,因此需要特定的字段指示符。
我有一个我非常喜欢的解决方案,但很快就发现除了必填字段(电子邮件、url、phoneUS 等自定义方法等)之外还需要消息,所以我对我的函数做了一些补充。
我使用 jQuery 已经有一段时间了,但我不是优化领域的专家,所以我想获得一些专家帮助,看看下面的函数是否可以优化......我的问题是,“实际上是否有一个在摘要中处理自定义错误消息的更好方法?”
$('.required, .email').each(function(index) {
var $this = $(this);
var label = (
$this.is(':radio')
? $("label[data-name='"+$this.attr('name')+"']")
: label = $("label[for='"+$this.attr('id')+"']")
);
var customMessages = [{}];
if($this.hasClass('required')){
customMessages.required = "'" + label.text() + "' is required.";
}
if($this.hasClass('email')){
customMessages.email = "'" + label.text() + "' has an invalid email address.";
}
$this.rules("add", {
messages: customMessages
});
});
这是 jsFiddle:http: //jsfiddle.net/GD5nw/1/