layui表單驗證


1.layui表單驗證

  低版本的layui的表單驗證有一些bug,比如,想實現非必填的郵箱校驗,直接使用lay-verify="email"就會有問題。此時的效果是格式校驗正確,但是不填的時候會報錯。

  此時有這么幾個解決方法:

  1.1 升級插件

  在高版本的layui中這個問題是解決了的。附上部分源碼

 1 this.config = {
 2                 verify: {
 3                     required: [/[\S]+/, "必填項不能為空"],
 4                     phone: [/(^$)|^1\d{10}$/, "請輸入正確的手機號"],
 5                     email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "郵箱格式不正確"],
 6                     url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "鏈接格式不正確"],
 7                     number: [/(^$)|^\d+$/,'只能填寫數字'],
 8                     date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正確"],
 9                     identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "請輸入正確的身份證號"]
10                 }
11 }

  此時加上了(^$)|,所以為空的時候也是校驗通過的了。

  1.2 改插件源碼

  道理同上,需要改的是form.jslayui.all.js。

  1.3 自定義校驗

  原理還是和上邊一樣的。關鍵代碼:

 1 form.verify({
 2       yearLength: function(value){
 3           if(value.length !== 4){
 4                   return '輸入年份格式錯誤';
 5                 }
 6           }
 7           ,numberQq: function(value){
 8               if(!/(^$)|^\d+$/.test(value)){
 9                     return 'QQ號碼格式錯誤';
10                   }
11           }
12           ,emaliReg: function(value){
13               if(!/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(value)){
14                     return '郵箱格式錯誤';
15                   }
16           }
17       });

2.一些知識點回顧

  2.1 元素選擇器循環

  元素選擇器選中的元素是個數組,有長度屬性,但是不是嚴格意義的數組,所以不能使用數組的forEach。它有自己的循環,叫each,且兩個參數第一個是index,第二個是e,與普通js數組的forEach參數順序相反。

  2.2 $(window).height() 和 $(document).height()

  前者是可見區域的高度,后者是文檔高度。這個知識點很基礎也很實用。

  2.3 jquery選擇器parent和parents

  前者選取的是上一級,而后者顧名思義可以選擇到全部上級,因而可以結合其他選擇器選擇特定父元素,如$($('.del_con')[0]).parents('.connecter')


免責聲明!

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



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