,因爲它是在驗證默認規定與一般的錯誤信息的錯誤容器DIV會自動顯示:JQ驗證:隱藏錯誤容器
jQuery.validator.setDefaults({
........
errorContainer: ".valerror",
........
});
這個容器僅一般的「檢查您輸入」消息,不應該包含特定於每個輸入控件的消息。當我點擊提交按鈕而沒有填寫表單時,標記了無效字段並顯示了一般錯誤消息。當字段填滿時,它們沒有標記,但一般錯誤消息仍然存在。
現在的問題:我需要隱藏容器時,所有的領域變得有效(沒有再次按下提交按鈕)。
我試圖
unhighlight: function(element, errorClass) {
if (this.numberOfInvalids() == 0) {
$(".valerror").hide();
}
},
,但是這個代碼塊完全deranges驗證引擎的正常運作,因爲它不知道「unhighlight」任何東西。
接受的答案
我複製「unhighlight」和「亮點」從處理jQuery驗證插件的源代碼,以我的代碼,並恢復了驗證功能。
highlight: function(element, errorClass, validClass) {
// default handling
if (element.type === 'radio') {
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
} else {
$(element).addClass(errorClass).removeClass(validClass);
}
// custom handling
$("#errnum").html(this.numberOfInvalids());
},
unhighlight: function(element, errorClass, validClass) {
// default handling
if (element.type === 'radio') {
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
// custom handling
$("#errnum").html(this.numberOfInvalids());
},
知道剩下的驗證錯誤的數目幫我找出的錯誤容器由JQ驗證插件,而這個問題是在沒有對Master選擇的改變重新驗證一些相關的從屬選擇(自動牆根但突出顯示從奴隸被刪除)。