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: _' } })