jquery - 更改时验证所选的选择菜单

标签 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"       
      }
    });

最佳答案

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

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

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

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

关于jquery - 更改时验证所选的选择菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29498668/

相关文章:

jquery - 在 Jquery 中附加大块 HTML

javascript - jquery查找最接近的元素值

java - 检查String是否只包含拉丁字符?

java - 在自定义 Spring Validator 中无法返回值

c# - 使用数据注释进行验证

javascript - 如何通过用户输入更改按钮值

javascript - jQuery .on() 的表现与预期不同

ruby-on-rails-3 - 将占位符文本添加到选定的 selected-jquery

jquery - 如何设置展开的 "Chosen"元素的最大高度(jQuery 插件)

javascript - 在纯 Javascript 中是否有像 jQuery-chosen 这样的例子?