2013-05-09 89 views
0

使用JQuery驗證插件,我編寫了以下內容,但發現顯示的是默認驗證消息而不是我的自定義消息(我在其他驗證中使用了常量,所以知道這是有效的! )。我錯過了什麼?jquery動態驗證規則忽略消息

$("#pageform").validate(); 
$("input[id^=displayName]").each(function() { 
    $(this).rules("add", { 
     maxlength: AGHOSTMOBILEADMIN_VALIDATION.constants.displayNameMaxLength, 
     messages: { 
      maxLength: AGHOSTMOBILEADMIN_VALIDATION.format.displayName 
     } 
    }); 
}); 
$("input[id^=navigationLabel]").each(function() { 
    $(this).rules("add", { 
     maxlength: AGHOSTMOBILEADMIN_VALIDATION.constants.navigationLabelMaxLength, 
     messages: { 
      maxLength: AGHOSTMOBILEADMIN_VALIDATION.format.navigationLabel 
     } 
    }); 
}); 
+0

你能告訴jsfiddle.net? – 2013-05-09 16:19:51

+1

你拼錯了'maxlength'。請注意,這是全部小寫。 – Sparky 2013-05-09 17:16:15

+0

darn大小寫敏感度每次都能讓您大飽眼福! – 2013-05-09 17:50:12

回答

1

試試這個..

messages: { 
      maxLength: AGHOSTMOBILEADMIN_VALIDATION.format.navigationLabel 
     } 

messages: { 
      maxlength: AGHOSTMOBILEADMIN_VALIDATION.format.navigationLabel 
     } 

注MaxLenth變爲最大長度(L成爲L)

所以完整的代碼應該看起來像

$("#pageform").validate(); 
$("input[id^=displayName]").each(function() { 
    $(this).rules("add", { 
     maxlength: AGHOSTMOBILEADMIN_VALIDATION.constants.displayNameMaxLength, 
     messages: { 
      maxlength: AGHOSTMOBILEADMIN_VALIDATION.format.displayName 
     } 
    }); 
}); 
$("input[id^=navigationLabel]").each(function() { 
    $(this).rules("add", { 
     maxlength: AGHOSTMOBILEADMIN_VALIDATION.constants.navigationLabelMaxLength, 
     messages: { 
      maxlength: AGHOSTMOBILEADMIN_VALIDATION.format.navigationLabel 
     } 
    }); 
}); 

這裏是工作的代碼

http://jsfiddle.net/cnrD3/