我使用addmethod添加了一种自定义方法,后者又调用另一种方法来检查有效UK telephone number
这是我的代码(简化):
HTML
<form id="myform">
<label for="field">Required, telephone: </label>
<input class="required" id="field" name="field" />
<br/>
<input type="submit" value="Submit" />
</form>
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]
请帮帮我
提前致谢
答案 0 :(得分:7)
嗯,我得到了我的问题的解决方案,所以我想回答我自己的问题,它可能会帮助其他人
只需创建一个函数并返回正在警告的错误
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
}
}
});
});
答案 1 :(得分:1)
以下是我的例子:
$.validator.addMethod('variable', function (value, element, params) {
if (!/[a-z]/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 (!/[a-z]/i.test(value[0])) {
return 'First character must be a letter'
}
if (/[~`!#$%\^&*+=\-\[\]\\';.,/(){}|\\":<>\?]/g.test(value)) {
return 'No special characters except: _'
}
})