我选择了下拉页面。我使用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 :(得分:1)
这是因为您在onfocusout方法中设置元素验证
onfocusout: function (element) {
$(element).valid();
},
但是这个事件永远不会触发,因为你用于select的插件会隐藏select并用div元素替换它(用于UI目的)。因此,当您从选择中选择一个值时,您正在聚焦div选择而不是输入(输入永远不会获得焦点,因为所选值通过javascript更新)。
您需要创建一个新的事件侦听器,在输入发生更改时触发验证(请参阅fiddle),另一种方法是强制选择焦点在change事件中。