2012-09-22 58 views
0

而不是顯示每個表單元素下的消息,如果有超過5個錯誤,我想顯示1錯誤消息上面的錯誤總數的形式。jquery validate show 1消息總數錯誤

原因:我有一個大的窗體,如果有很多錯誤,它的高度可能會翻倍。

我將如何得到錯誤的總數?

E.g這樣的事情,但這總是返回1

errorPlacement: function(error, element) { 
    var errorCount = 0; 
    var i; 
    for (i = 0; i < error.length; ++i) { 
     errorCount++; 
    }  
} 
+1

我想你應該檢查你的'錯誤'參數。正如我從這段代碼所理解的那樣,你將這個函數稱爲一個字段。所以可能是你需要全局'errorCount'並且每次檢查字段時都增加它 –

回答

0

萬一別人遇到這個問題,有在szaboat的的jsfiddle錯誤導致我的問題。

您需要將函數傳遞給validate()方法的invalidHandler選項,並且函數應接受兩個參數。第二個參數是驗證器本身,它有一個返回錯誤總數的numberOfInvalids()方法。

以下是jQuery Validation Plugin Documentation的示例。

$("#myform").validate({ 
    invalidHandler: function(event, validator) { 
    // 'this' refers to the form 
    var errors = validator.numberOfInvalids(); 
    if (errors) { 
     var message = errors == 1 
     ? 'You missed 1 field. It has been highlighted' 
     : 'You missed ' + errors + ' fields. They have been highlighted'; 
     $("div.error span").html(message); 
     $("div.error").show(); 
    } else { 
     $("div.error").hide(); 
    } 
    } 
});