我在HTML中有几个下拉菜单,我使用jQuery Selectbox插件(selectbox())进行自定义下拉菜单。
此外,我需要验证表单,我正在使用jQuery.validate js。
当我将selectbox()
$("#pd_subject").selectbox();
应用于下拉列表时,jQuery.validate根本不会验证下拉列表,
小提琴案1 :Case1
但是当我从下拉列表中删除selectbox()属性时,jQuery.validate会开始验证它们。
小提琴案2 :Case2
第一种情况可能是什么障碍?
答案 0 :(得分:2)
想出来。
最新的jQuery.validate.js(1.9.0& more)忽略隐藏的字段,只验证表单上的可见字段。
> ignore: ":hidden",
旧版本的validate.js(1.8.1& less)具有以下行:
> ignore: [],
其中包括表单上的每个字段,无论是否可见。
selectbox()插件只是隐藏下拉列表并在支持设计和自定义的HTML中添加新div
<select id="qwerty" name="qwerty" sb="55594954" style="display: none;">...</select>
<div id="sbHolder_55594954" class="sbHolder">.....</div>
这就是下拉列表继续逃避验证的原因。
在此处更新了旧的validate.js:http://jsfiddle.net/UKDbq/2/