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 的元素不起作用。
本文探讨了Chosen-Select插件与jQuery Validate插件之间的兼容性问题。当使用Chosen-Select替换原生select元素后,由于jQuery Validate默认会忽略隐藏元素,导致select元素的验证失效。文中提供了解决方案,即通过调整validate方法的ignore属性来排除select元素。

1万+

被折叠的 条评论
为什么被折叠?



