學(xué)習(xí)LayUI時(shí)自研的表單參數(shù)校驗(yàn)框架案例分析
開(kāi)發(fā)背景&痛點(diǎn) :
每次寫(xiě)前端的表單的時(shí)候需要對(duì)表單里用戶(hù)填寫(xiě)的內(nèi)容進(jìn)行校驗(yàn),減少服務(wù)器壓力,提前對(duì)已知錯(cuò)誤對(duì)用戶(hù)提示。每次會(huì)要寫(xiě)很多的if else等等對(duì)輸入框中的內(nèi)容進(jìn)行判斷,并對(duì)為空、格式不正確等情況作出對(duì)應(yīng)提示。
需要寫(xiě)大量重復(fù)的if else語(yǔ)句,實(shí)在太麻煩,所以自己寫(xiě)了這個(gè)框架用于前端參數(shù)的校驗(yàn)。
本框架基于LayUI框架
對(duì)于三種開(kāi)發(fā)者情況:
1、完全不會(huì)LayUI也沒(méi)有任何關(guān)系 在html頭部中添加如下代碼就OK了
<script src="https://www.layuicdn.com/layui/layui.js"></script> <link rel="stylesheet" > <script> var layer=layui.layer; var form=layui.form; layui.use(['layer','form'],function () {}) </script>
2、使用了LayUI框架進(jìn)行開(kāi)發(fā)則無(wú)需做改變
3、使用了其他前端UI框架將源碼中下面語(yǔ)句轉(zhuǎn)換成你的UI框架的提示框即可。
layer.tips(tipname+'不合法('+tiplegal+')',chooser,{ tips: [2, '#FF0000'] })
使用本參數(shù)校驗(yàn)框架需要引入一個(gè)js文件(可以下載到本地使用)
在Html頭部插入如下代碼引入JS
<script src="https://mywarehouse.oss-cn-shenzhen.aliyuncs.com/ParaCheck.js"></script>
使用案例
HTML:
本注冊(cè)頁(yè)面對(duì)應(yīng)JS文件
使用效果
直接點(diǎn)擊注冊(cè)
輸入1后點(diǎn)擊注冊(cè)
API:
核心接口:
1:paraCheck(chooser,name,regex,legal)//單個(gè)輸入框檢查函數(shù),傳入的三個(gè)參數(shù)為,選擇器(#id或者.class)、輸入框名稱(chēng)(中文意義,比如手機(jī)號(hào)碼)、正則匹配式(比如驗(yàn)證碼輸入框?qū)?yīng)的正則表達(dá)式為/^[0-9]{6}$/)
2:multiParaCheck(choosers,names,regexs,legals)//批量校驗(yàn)函數(shù)
返回值:
1:true 全部通過(guò)校驗(yàn)
2:false 出現(xiàn)未通過(guò)校驗(yàn)的輸入框,實(shí)時(shí)進(jìn)行如上圖對(duì)用戶(hù)進(jìn)行提示
備注:第一個(gè)參數(shù)必填,第二、三、四個(gè)參數(shù)選填,建議都傳入,用戶(hù)體驗(yàn)感好,如果您不想麻煩,只檢測(cè)是否是空的,那只需要傳入第一個(gè)參數(shù)。
圖中注冊(cè)界面腳本代碼:
(注冊(cè)按鈕onclick="register()")
function register() { var choosers=['#phone','#content','#password','#name','#stuId','#gender','#grade','#major','#classNumber']; var names=['手機(jī)號(hào)碼','短信驗(yàn)證碼','密碼','姓名','學(xué)號(hào)','性別','年級(jí)','專(zhuān)業(yè)','班級(jí)']; var regexs=[/^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\d{8}$/,/^[0-9]{6}$/,/^[0-9a-zA-Z]{8-20}$/,/^[\u4e00-\u9fa5]{2,5}$/,/^2[0-9]{11}$/,/^[男女]$/,/^20[0-9]{2}$/,/^[\u4e00-\u9fa5]{2,10}$/,/^[0-9]{1,2}$/]; var legals=['11位數(shù)字','6位數(shù)字','8-20位數(shù)字、字母','2-5位中文','12位數(shù)字','男|女','4位數(shù)字','2-10位中文','1-2位數(shù)字']; if(multiParaCheck(choosers,names,regexs,legals)) { if ($('#password').val()!=$('#repeatPassword').val()) { layer.tips('兩次密碼輸入不一致','#repeatPassword',{ tips: [2, '#FF0000'] }); return; } var formData=new FormData(); for(var i=0;i<choosers.length;i++) formData.append(choosers[i].replace('#',''),$(choosers[i]).val()); $.ajax({ type: "get", url: "/fpa/member/login", xhrFields: {withCredentials: true}, data: formData, dataType: "text", success: function (data) { layer.alert(data); if (data.indexOf('成功') > -1) window.href.open('/login.html'); } }); } }
總結(jié)
以上所述是小編給大家介紹的學(xué)習(xí)LayUI時(shí)自研的表單參數(shù)校驗(yàn)框架案例分析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
JavaScript 開(kāi)發(fā)工具webstrom使用指南
本文給大家推薦了一款非常熱門(mén)的javascript開(kāi)發(fā)工具webstrom,著重介紹了webstrom的特色功能、設(shè)置技巧、使用心得以及快捷鍵匯總,非常的全面。2014-12-12layui 實(shí)現(xiàn)自動(dòng)選擇radio單選框(checked)的方法
今天小編就為大家分享一篇layui 實(shí)現(xiàn)自動(dòng)選擇radio單選框(checked)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09el-select加上搜索查詢(xún)時(shí)限制開(kāi)頭空格輸入的解決方案
這篇文章主要介紹了el-select加上搜索查詢(xún)時(shí),限制開(kāi)頭空格輸入的解決方案,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-02-02JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹(shù)的定義與表示方法
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹(shù)的定義與表示方法,簡(jiǎn)單講述了二叉查找樹(shù)的概念、特點(diǎn)及javascript針對(duì)二叉查找樹(shù)的創(chuàng)建、插入、遍歷等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04javascript關(guān)于運(yùn)動(dòng)的各種問(wèn)題經(jīng)典總結(jié)
這篇文章主要介紹了javascript關(guān)于運(yùn)動(dòng)的各種問(wèn)題,實(shí)例總結(jié)了javascript關(guān)于滾動(dòng)的常見(jiàn)錯(cuò)誤、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04