2015-04-07 96 views
1

我已選擇頁面上的下拉菜單。我使用jQuery驗證插件來驗證該字段。但是,當更改所選下拉驗證不會被解僱。還有什麼方法可以在選擇的下拉列表中添加錯誤類。 fiddle驗證所選擇的更改菜單

$('.chosen').chosen() 
$.validator.setDefaults({ 
    submitHandler: function() { 
     return false 
    },ignore: ":hidden:not(select)" 
    }); 


$("#myform").validate({ 
     onfocusout: function (element) { 
     $(element).valid(); 
     },  
     rules: { 
     country:"required"  
     }, 
     messages: {   
     country:"please choose country"  
     } 
    }); 
+0

你看過[this](http://stackoverflow.com/questions/11232310/how-can-i-use-jquery-validation-with-the-chosen-plugin?rq=1)嗎? – Ryley

+0

是的,我做到了。但是我想在用戶更改下拉值時觸發驗證 – Carlos

回答

1

這是因爲你設置你的元素驗證在onfocusout在方法

onfocusout: function (element) { 
    $(element).valid(); 
    }, 

但這一事件永遠不會觸發,因爲你正在使用的選擇插件隱藏了選擇,並用其替換div元素(用於UI目的)。因此,當您從select中選擇一個值時,您正在關注div select而不是輸入(由於所選值將通過javascript進行更新,因此輸入永遠不會獲得焦點)。

您需要創建一個新的事件偵聽器,當輸入發生更改(請參閱fiddle)時,觸發驗證的替代方法是強制在change事件中選擇focusout。

+0

您是純粹的天才。 –