1. 程式人生 > >validate校驗select2無效問題解決

validate校驗select2無效問題解決

問題介紹:

在專案中使用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();  
});