在更改时验证选择的选择菜单

时间:2015-04-07 18:32:10

标签: jquery validation jquery-chosen

我选择了下拉页面。我使用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"       
      }
    });

1 个答案:

答案 0 :(得分:1)

这是因为您在onfocusout方法中设置元素验证

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

但是这个事件永远不会触发,因为你用于select的插件会隐藏select并用div元素替换它(用于UI目的)。因此,当您从选择中选择一个值时,您正在聚焦div选择而不是输入(输入永远不会获得焦点,因为所选值通过javascript更新)。

您需要创建一个新的事件侦听器,在输入发生更改时触发验证(请参阅fiddle),另一种方法是强制选择焦点在change事件中。