validate校驗select2無效問題解決
阿新 • • 發佈:2019-01-06
問題介紹:
在專案中使用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();
});