0
試圖驗證表單,我不知道使用jQuery驗證頁面頂部的內容並顯示摘要。我不想在每個字段旁邊留言。我可以在onsubmit上正常工作,如果我禁用onfocusout/onblur/onkeyup,一切都很好。目前我一直試圖通過showErrors來做到這一點,但我是開放的。jQuery驗證onBlur摘要
我的印象是,jQuery驗證只會帶回失敗時觸發onblur或keyup的單個元素。現在發生的情況是,每次我的摘要被覆蓋,當它觸發onblur時,摘要可能會變回空(大概是因爲errorMap只包含失敗的一個元素)。我想要更新或重新生成摘要,以便在用戶瀏覽表單時保持正確。
我覺得我可能需要保存一個對我的驗證器的引用,然後通過validator.errors()或.elements()循環,但我不確定該怎麼辦。下面是我的整個validateform()函數,從任何提交按鈕中被調用。
function validateform() {
$("form").validate({
showErrors: function(errorMap, errorList) {
var errorCount = this.numberOfInvalids();
if (errorCount > 0) {
if (errorCount == 1) {
$("#errorContainer h3").html("Your form contains " + errorCount + " error, see details below.");
}
else { /*two or more errors */
$("#errorContainer h3").html("Your form contains " + errorCount + " errors, see details below.");
}
var summary = '';
$.each(errorMap, function(key, value) {
var field = $('input[name="' + key + '"],select[name="' + key + '"],textarea[name="' + key + '"]');
field.addClass('err');
var fieldname = field.attr("rel");
summary += '<p><span class="errorkey">' + fieldname + '</span> - <span class="errorvalue">' + value + "</span></p>";
});
$('#errorList').html(summary);
$('#errorContainer').slideDown();
}
},
onfocusout: false,
onkeyup: false,
onclick: false
});
}
翻閱 – 2012-04-13 15:43:15