本文共 524 字,大约阅读时间需要 1 分钟。
在项目中使用select2美化select标签,使用validate校验不生效,发现问题如下:
1、使用select2美化select下拉列表后,select2会把原来的select隐藏掉,设置css属性(display:none),然后再通过select2重新定制界面
2、但jquery.validate.js默认不是校验:hidden属性的控件,所以造成原来的select校验不了
设置validate属相ignor为""空字符串,否则会忽略hidden的控件
$("#myform").validate({ ignore: ""});
但是设置之后,如果select2为空,点击提交按钮,会校验不为空,但是选择了数据之后,不为空的错误提示依然不消失,
如图,选择了数据,错误提示依然在。
设置ignore后在提交时就会对隐藏的属性进行校验,但选择的时候没有进行实时校验,因为你选择的是select2。所以要给select加一个change事件,当改变时,再校验一次。
$(".select2").change(function(){ $(this).valid(); });