2012-08-08 67 views
3

我使用jquery validation pluginjQuery驗證插件,如何在自定義方法添加多個自定義消息

我添加使用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設置根據錯誤的類型的變種telNumberErrorNo的值。 所有錯誤消息都在數組中telNumberErrors

現在我的要求是,如何顯示那些現在被警告的錯誤消息。

通過jQuery.validator.format(telNumberErrors[telNumberErrorNo])作爲消息(第三選項)addMethod沒有幫助。

我也試過路過僅此telNumberErrors[telNumberErrorNo]但其只顯示一個消息每次包含在telNumberErrors[0]

即消息時,plz幫助我

在此先感謝

回答

5

嗯,我得到了解決我的問題所以我想回答我自己的問題,它可以幫助其他人

只是創建一個函數並返回正在提醒的錯誤

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 
      } 
     }  
    }); 
}); 
0

這是我的例子:

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