2013-10-29 58 views
0

我只是想知道如何具體添加errorClass元素。 我使用bootstrap-select來選擇我的選擇。 這隱藏了select元素並創建了一個div,並且jQuery validate將errorClass添加到select元素而不是div(有意義)。jQuery驗證,具體錯誤類放置

我該如何具體說所有選擇,errorClass應該在div上?我突出猜測,但我似乎無法找到如何僅在一個元素上做到這一點。

+0

'errorPlacement'選項是否做你想要的? – Barmar

+0

不,我使用errorPlacement來放置錯誤消息。我在這裏需要的是將錯誤類(突出顯示元素的錯誤類)放在我已經重命名爲「invalid」的位置。 –

+0

'errorClassContainer'如何? – Barmar

回答

3

要更改應用的errorvalid類,你就必須指定定製highlightunhighlight回調函數。

這些是使用中的默認功能。根據需要編輯。

$(document).ready(function() { 

    $('#myform').validate({ 
     // other rules & options, 
     highlight: function (element, errorClass, validClass) { 
      if (element.type === "radio") { 
       this.findByName(element.name).addClass(errorClass).removeClass(validClass); 
      } else { 
       $(element).addClass(errorClass).removeClass(validClass); 
      } 
     }, 
     unhighlight: function (element, errorClass, validClass) { 
      if (element.type === "radio") { 
       this.findByName(element.name).removeClass(errorClass).addClass(validClass); 
      } else { 
       $(element).removeClass(errorClass).addClass(validClass); 
      } 
     } 
    }); 

}); 

的jsfiddle DEMO:http://jsfiddle.net/U3L73/

我只用於說明應用的顏色爲默認的CSS類。

+0

這就是我正在尋找的,非常感謝。 –

1

showErrors函數可以使用。我使用它(引導程序3)將有錯誤類設置爲form-group item,因此它突出顯示了form-group中的所有元素,而不僅僅是輸入。

$.validator.setDefaults({ 
showErrors: function (errorMap, errorList) { 
    $.each(this.successList, function (index, value) { 
     var $element = $(value); 
     $element.closest('.form-group').removeClass('has-error'); 
    }); 


    $.each(errorList, function (index, error) { 
     var $element = $(error.element); 
     $element.closest('.form-group').addClass('has-error'); 
    }); 
});