天天看点

jQuery Validate 无法验证 chosen-select元素

chosen-select元素执行了chosen()方法后,为select元素加上了

style="display: none;"

进行隐藏,然后重新构造了一个看起来像select的下拉列表。

而jQuery Validate默认忽略对隐藏元素进行校验,因此我们要把select排除。在validate()方法的参数中增加ignore属性,将select从忽略的隐藏元素中剔除。

$("select").validate({ignore: ":hidden:not(select)"});

:hidden 选择器选取隐藏的元素。 以下几种情况的元素是隐藏元素:
  • 设置为 display:none
  • 带有 type=”hidden” 的表单元素
  • width 和 height 设置为 0
  • 隐藏的父元素(这也会隐藏子元素)

    注释:该选择器对 visibility:hidden 和 opacity: 0 的元素不起作用。