2012-10-21 57 views
1

當輸入或選擇字段發生校驗錯誤,該插件將誤差類它,因此在CSS我能有這樣的事情:jQuery驗證插件的問題

.error { border: 2px solid red; } 

,但是這並未由於某些瀏覽器不允許對這些類型的元素進行樣式設置,因此無法處理複選框和收音機。所以對於這兩種類型的元素,我希望div類與block類包含他們被給予錯誤類代替。因此,它看起來像這樣的錯誤:

<div class="block error"> 
    <input type="checkbox" name="something" class="error" /> Something 
</div> 

如何插件擴展到實現這一目標?

僞代碼:

$.validator.addClassRules('checkboxOrRadioError', { 
    onError: function() { 
     $(this).parents('.block').addClass('error'); 
    } 
}); 

回答

2

可以使用errorPlacement回調過度騎錯誤的默認放置或highlight回調連同unhighlight。現在,您需要發生什麼控制,但必須寫的所有條件

例子:

$('form').validate(function() { 

    highlight: function(element, errorClass) { 
     var $el = $(element); 
     if ($el.is(':radio') || $el.is(':checkbox')) { 
      $el.closest('.block').addClass(errorClass) 

     } else { 
       /* add code for default*/ 
     } 

    }, 

    unhighlight: function(element, errorClass) { 
       /* code to reverse the above*/ 
    } 
})​ 
+0

我在控制檯中此錯誤:類型錯誤:element.is不是一個函數'如果(element.is(」 :'checkbox')|| element.is(':radio')){' – TK123

+0

嘗試在'$()''$(element)'中換行已經有一段時間了,因爲我使用插件。代碼在回答中也修改了 – charlietfl

+0

那樣做了,謝謝! – TK123