2010-04-23 75 views
2

這工作:jQuery驗證errorPlacement

$("[id$='_zzz']").rules(
    "add", 
    { 
     required: true, 
     minlength: 8, 
     messages: { 
      required: "...", 
      minlength: jQuery.format("...") 
     }    
    } 
); 

錯誤消息出現。

當我嘗試風格的消息,這不起作用:

$("[id$='_zzz']").rules(
    "add", 
    { 
     required: true, 
     minlength: 8, 
     messages: { 
      required: "...", 
      minlength: jQuery.format("...") 
     }, 
     errorElement: "span", 
     errorPlacement: function(error, element) { 
      error.insertAfter(element); 
      error.css("margin", "0 0 0 5px"); 
     }    
    } 
); 

當我通過驗證功能的款式,造型進行塗布,它的工作原理:

$('#aspnetForm').validate({ 
    errorElement: "span", 
    errorPlacement: function(error, element) { 
     error.insertAfter(element); 
     error.css("margin", "0 0 0 5px"); 
    } 
}); 

爲什麼能我是否在規則添加函數中使用了錯誤位置?

+0

你正在使用哪個jquery庫? – amelvin 2010-04-23 14:06:59

+0

bassistance.de - http://docs.jquery.com/Plugins/Validation/Methods – Steve 2010-04-23 14:14:35

+0

好吧,我可以確認樣式在一個簡單的頁面上工作(使用jquery1.4/validate) - 似乎沒有在同一時間造型的任何錯誤...給我一分鐘。 – amelvin 2010-04-23 14:39:32

回答

3

在第一種方法中,您將對象上的errorPlacement屬性/函數傳遞給rules方法......它根本不在乎檢查並不使用它。對於你傳遞給javascript的任何對象,它必須檢查該屬性或以某種方式使用它,否則它只是無關的信息。你也可以將myExtrathing:'ValueHere'添加到對象中,不會破壞任何東西......但不會被使用。

.validate() method has an existing errorPlacement function(即主動使用,這是重要組成部分,它是尋找它)在默認選項並performs an extend與一個替換默認的方法您提供的...如果你提供的一個。對於幾乎每個jQuery插件和您指定的任何選項,這種行爲也是如此,它將默認選項與您提供/覆蓋的選項合併在一起。你可以看到這個行爲的一些簡單例子in the jQuery plugin authoring manual