使用errorPlacement掛鉤我可以將某個類添加到某個錯誤元素。然而,一旦形式第二次提交,它就會失去我添加的課程。該示例請參閱以下代碼。jQuery驗證插件添加類errorPlacement錯誤標籤
http://www.jsfiddle.net/NU63P/1
我怎能附加類的元素通過驗證過程的整個生命週期?是否有另一個鉤子,我需要添加類回來?最終,我試圖完成的是我想添加一個特定的類到第二個文本框錯誤標籤。
使用errorPlacement掛鉤我可以將某個類添加到某個錯誤元素。然而,一旦形式第二次提交,它就會失去我添加的課程。該示例請參閱以下代碼。jQuery驗證插件添加類errorPlacement錯誤標籤
http://www.jsfiddle.net/NU63P/1
我怎能附加類的元素通過驗證過程的整個生命週期?是否有另一個鉤子,我需要添加類回來?最終,我試圖完成的是我想添加一個特定的類到第二個文本框錯誤標籤。
不幸的是有沒有做到這一點通過API提供的,因爲它使(在我看來)一個錯誤的決定在這裏一個直接的方式:
showLabel: function(element, message) {
var label = this.errorsFor(element);
if (label.length) {
label.removeClass().addClass(this.settings.errorClass);
//^ right here
}
這是何等的移除所有的類,不幸的是它的也是在無效處理程序管道中運行的最後一件事。 然而,它是由defaultShowErrors()
叫,你可以通過重寫showErrors
選項,像這樣自稱:
$(function() {
$('form').validate({
showErrors: function(errorMap, errorList) {
this.defaultShowErrors();
$(this.currentForm).find('label[for=text2].error').addClass('errorextra');
}
});
});
另一種選擇,如果你只支持新的瀏覽器將在CSS中完全做到這一點:
label[for=text2].error { margin-left: 10px; }
完美!謝謝!
我正在使用編輯器(ckeditor)。在$(「#form1」)中添加這個添加項。validate現在我可以隱藏生成的錯誤消息,如果在編輯器中輸入了內容。
這裏我的代碼的相關部分... HTH的人......對KEYUP
updateTextArea1
CKEDITOR.instances.editor1.on("instanceReady", function()
{
//set keyup event
this.document.on("keyup", updateTextArea1);
//and paste event
this.document.on("paste", updateTextArea1);
});
得到editor1的數據,更新編輯器和隱藏錯誤消息
function updateTextArea1()
{
CKEDITOR.tools.setTimeout(function()
{
var oEditor1 = CKEDITOR.instances.editor1;
var content1 = oEditor1.getData();
CKEDITOR.instances.editor1.updateElement();
$(".error.errorextra1").hide()
}, 0);
}
將附加類添加到jquery驗證器生成的錯誤消息中
var validator = $("#form1").validate({
showErrors: function(errorMap, errorList) {
this.defaultShowErrors();
$(this.currentForm).find('label[for=editor1].error').addClass('errorextra1');
$(this.currentForm).find('label[for=editor2].error').addClass('errorextra2');
},
正是我在尋找的感謝之手 – aherrick 2010-10-24 13:32:37