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

Utt*_*ara 4 validation jquery jquery-validate

我正在使用jquery验证插件

我使用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>
Run Code Online (Sandbox Code Playgroud)

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]));
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

请帮助我

提前致谢

Utt*_*ara 7

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

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

var dispError = function(){
    return telNumberErrors[telNumberErrorNo];
}
Run Code Online (Sandbox Code Playgroud)

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

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

然后调用validate方法

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