jqueryvalidation插件,如何在自定义方法中添加多个自定义消息

我正在使用jqueryvalidation插件

我使用addmethod添加了一个自定义方法,后者又调用另一种方法来检查有效的UK telephone number

这是我的代码(简化):

HTML

 

jQuery的

 $(document).ready(function(){ $("#myform").validate({ rules:{ field:{ required:true; UKTelNumber:true } } }); }); jQuery.validator.addMethod("UKTelNumber", function(value,element) { if (!checkUKTelephone (value)) { alert (telNumberErrors[telNumberErrorNo]); return false; } else { return true } },jQuery.validator.format(telNumberErrors[telNumberErrorNo])); 

函数checkUKTelephone根据错误类型设置var telNumberErrorNo的值。 所有错误消息都在数组telNumberErrors

现在我的要求是如何显示正在提醒的那些错误消息。

传递jQuery.validator.format(telNumberErrors[telNumberErrorNo])作为addMethod的消息(第三个选项)没有帮助。

我也试过只传递这个telNumberErrors[telNumberErrorNo]但每次只显示一条消息,即telNumberErrors[0]包含的消息

请帮助我

提前致谢

好吧,我得到了我的问题的解决方案,所以我想回答我自己的问题,它可能会帮助其他人

只需创建一个函数并返回正在警告的错误

 var dispError = function(){ return telNumberErrors[telNumberErrorNo]; } 

然后将该函数作为addMethod的第三个参数传递

 jQuery.validator.addMethod("UKTelNumber", function(value,element) { if (!checkUKTelephone (value)) { return false; } else { return true } },dispError); 

然后调用validate方法

 $(document).ready(function(){ $("#myform").validate({ rules:{ field:{ required:true; UKTelNumber:true } } }); }); 

这是我的例子:

 $.validator.addMethod('variable', function (value, element, params) { if (!/[az]/i.test(value[0])) { return this.optional(element) || false; } else if (/[~`!#$%\^&*+=\-\[\]\\';.,/(){}|\\":<>\?]/g.test(value)) { return this.optional(element) || false; } else { return this.optional(element) || true; } }, function(error, element) { var value = $(element).val(); if (!/[az]/i.test(value[0])) { return 'First character must be a letter' } if (/[~`!#$%\^&*+=\-\[\]\\';.,/(){}|\\":<>\?]/g.test(value)) { return 'No special characters except: _' } })