2010-11-10 66 views
1

予读入这个jquery的网站:jQuery验证插件addMethod与本地化

消息(可选)字符串,功能
以显示 此方法的默认消息。可以通过jQuery.validator.format(value)创建一个函数 。 未定义时,使用已存在的 消息(便于本地化),否则 字段特定的消息必须定义为 。

我添加了一个方法是这样的:

$.validator.addMethod("postalCode", function(value, element) { 
return this.optional(element) || /^[0-9\-]+$/i.test(value); 
}); 

然后,在我的本地化文件我有:

postalCode: jQuery.validator.format("blabla") 

然而, “布拉布拉” 从未设想。

我也试图通过jQuery.format()作为消息参数:

$.validator.addMethod("postalCode", function(value, element) { 
return this.optional(element) || /^[0-9\-]+$/i.test(value); 
}, jQuery.format()); 

没有任何运气。

这是假设如何工作?

非常感谢, MEM

回答

1

事情是这样的:

$.validator.addMethod("postalCode", function(value, element) { 
return this.optional(element) || /^[0-9\-]+$/i.test(value); 

应该工作。如果您忽略该消息,它将从您的本地化消息文件中获取该消息。

这里有很好的课。 :)

+0

我搜索了更复杂的方式,你有soluce ......这么简单。谢谢。 – Hugo 2012-02-22 15:37:46

0

在方法$ .validator.addMethod()最后一个可选参数是一个默认的常量消息作为文本在quots。你必须使用jQuery.validator.format( “... {0} ... {1} ...”)在代替的情况下定义的处理程序的参数为:

addMethod("methodName", function(value, element, params){ 

可以在错误被outputed消息,替换掩码“{N}”(这是为什么函数“格式”需要),其中N是参数的数量,如果有几个参数传递的话。 对于i.g.规则“minlength:10”意味着“10”是句柄func中第三个变量的值。

如果不指定默认消息,那么就可以在一节中定义“消息”:

,messages : { 
    someField1 : {methodName:"error message"}, 
    someField2 : {methodName:$.validator.messages.custom_mess} 
} 

期望的是包括按以下顺序js代码:

  1. “验证”插件
  2. “addMethod” 指令
  3. “本地化” 文件
  4. 您的onLoad合作de与$('#someForm')。validate({...})
0

如果您想要“customPassword”验证。

  1. 使.js文件的语言环境代码结束(messages_en.js,messages_de.js)。
  2. 包含文件取决于所选的应用程序语言。
  3. 添加翻译消息是这样的:

$.extend($.validator.messages, { 
 
\t customPassword: "One number, small and big letter and min 8 chars.", 
 
\t required: "This field is required.", 
 
\t remote: "Please fix this field." 
 
});

  • 然后添加方法丝毫第二参数 “$ .validator.messages.customPassword”,而不是字符串消息。
  • jQuery.validator.addMethod("customPassword", function(value, element, params){ 
     
        return this.optional(element) || (value.match(/((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,50})/)); 
     
    }, $.validator.messages.customPassword);