不是在每个表单元素下显示消息,如果有超过5个错误,我想在表单上方显示1个错误消息,其中包含错误总数。
原因:我有一个很大的形式,如果有很多错误,这个高度几乎会翻倍。
我如何获得错误总数?
E.g之类的东西,但这总是会返回1.
errorPlacement: function(error, element) {
var errorCount = 0;
var i;
for (i = 0; i < error.length; ++i) {
errorCount++;
}
}
答案 0 :(得分:3)
答案 1 :(得分:0)
如果其他人遇到这个问题,szaboat的jsfiddle中有一个错误导致了我的问题。
您需要将函数传递给invalidHandler
方法的validate()
选项,该函数应接受两个参数。第二个参数是验证器本身,它有一个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();
}
}
});