jQuery 實現bootstrapValidator下的全局驗證


  前置:

  引入jQuery、bootstrap、bootstrapValidator

  問題描述:

  項目中要求所有的表單輸入框中都不能輸入&符號。沒有在bootstrap中找到有方法可用,只能自己動手了

  思路:

  使用正則。

  分兩種情況,第一種,如果輸入框有自身的正則驗證則不用去管(一般來說使用正則驗證是嚴格控制輸入的);第二種,如果沒有正則則需要添加不能輸入&的正則。

  需要重載bootstrapValidator初始化函數,根據上面的兩種情況修正初始化的設置項。最后要恢復原來的bootstrapValidator函數(這一步是必須的,原來的bootstrapValidator函數有自己的一大堆關聯的東東,不能丟失);

  實現:

/*add chenhua 2015.10.16 重寫bootstrapValidator方法?給每一個驗證項都添加禁止輸入"&"符號*/ 
$(function(){
  //保存原始的bootstrapValidator
  var overwrite = $.fn.bootstrapValidator;
  //重載bootstrapValidator   $.fn.bootstrapValidator
= function(options){     //恢復原來的bootstrapValidator,因為其加了很多數據是不能丟失的     $.fn.bootstrapValidator = overwrite;
    //這里有兩種做法,第一種是直接修改arguments內容,使其包含不能輸入&的驗證,然后調用即可;
    //第二種是先使用arguments來初始化,然后使用調用bootstrapValidator的函數來給非正則表達式驗證的項添加不能輸入&的驗證
    //這里我們使用了第二中。  
    var validtor = overwrite.apply(this,arguments);     if($.type(arguments[0]) == "object"){       var vtor = this.data("bootstrapValidator"),
      //過濾出輸入框表單項         fileds
= this.find("input[name][type='hidden'],input[name][type='password'],input[name][type='text'],textarea[name]").not(":disabled,[type='hidden']");       fileds.each(function(){         //本身沒有正則驗證才添加不能輸入&的驗證         if(!vtor.getOptions($(this).attr('name'),'regexp','regexp')){   vtor.addField($(this).attr('name'),             {               validators: {                 regexp: {                   regexp: /^[^&]*$/,                   message: "不能包含&字符"                 }               }           })         }       })     }     return validtor;   } })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM