詳解小程序之簡單登錄注冊表單驗證
這段時間在做員工管理的小程序,前期在登錄注冊上花了不少功夫,今天就給大家分享下。
效果圖,wxss的內(nèi)容較簡單,自己編寫即可。
##主要內(nèi)容
一、首先我是在util.js中引入表單正則驗證規(guī)則,給予login.js來引用
function regexConfig() { var reg = { userid: /^[A-Za-z0-9]+$/, //郵箱正則驗證 phone: /^1(3|4|5|7|8)\d{9}$/, //手機號正則驗證 cards: /^[\u4e00-\u9fa5]{2,4}$/ //姓名漢字正則驗證 } return reg; } module.exports = { formatTime: formatTime, regexConfig: regexConfig }
驗證結(jié)果
二、在login.index中寫一個form表單,內(nèi)容自己可以隨意規(guī)定,
<form bindsubmit="formSubmit"> <view class="input-area"> <view class="input-log"> <image class="userinfo-logIcon" src="{{logIcon}}"></image> <input id="username" name="username" maxlength='4' type="text" placeholder="姓名" /> </view> <view class="input-log"> <image class="userinfo-logIcon" src="{{pwdIcon}}"></image> <input id="password" name="password" type="number" maxlength="11" placeholder="手機號" /> </view> </view> <view class="btn-area"> <button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo" disabled="{{disabled}}" style="background-color:{{loginBtnBgBgColor}}" formType="submit" loading="{{btnLoading}}"> {{loginBtnTxt}} </button> </view> </form> <text class='tips' style=''>注意:只有在職人員方可登錄</text>
這里,姓名一欄通常是算作8個字符,但是我測試后實際應(yīng)為2-4字符,姓占位1-2字符,名占位1-2字符。不排除異類情況,如果是郵箱則不需要規(guī)定“maxlength”的數(shù)值。
手機號一欄必須規(guī)定長度,否則別人會隨便填寫錯誤手機號,當然這也是為了簡單驗證,嚴格來說是要給填寫的手機號發(fā)送驗證碼來驗證的,那需要收費,個人依情況而定。
提交表單【 formType=“submit”】。
三、login.js內(nèi)容
var util = require("../../utils/util.js"); var myMessage=""; Page({ data:{ loginBtnTxt:"登錄", myMessage:"", loginBtnBgBgColor:"#0099FF", btnLoading:false, disabled:false, inputUserName: '', inputPassword: '', avatarUrl:"../../images/logo.jpg", logIcon:"../../images/logIcon.png", pwdIcon:"../../images/pwdIcon.png", curNav: 1, curIndex: 0 }, onLoad:function(options){ // 頁面初始化 options為頁面跳轉(zhuǎn)所帶來的參數(shù) wx.clearStorageSync(); //清除緩存 }, formSubmit:function(e){ //form提交內(nèi)容 對登錄信息做判斷 var param = e.detail.value; this.mysubmit(param); console.log("登錄頁提交",param) }, mysubmit:function (param){ //驗證帳號密碼輸入信息完整度 var flag = this.checkUserName(param) && this.checkPassword(param); console.log('信息填寫',flag) if(flag){ this.setLoginData1(); this.checkUserInfo(param); } }, setLoginData1:function(){ //登錄態(tài)提示 this.setData({ loginBtnTxt:"登錄中", disabled: !this.data.disabled, loginBtnBgBgColor:"#999", btnLoading:!this.data.btnLoading }); }, setLoginData2:function(){ this.setData({ loginBtnTxt:"登錄", disabled: !this.data.disabled, loginBtnBgBgColor:"#0099FF", btnLoading:!this.data.btnLoading }); }, checkUserName:function(param){ var userid = util.regexConfig().cards; //姓名正則檢驗 var inputUserName = param.username.trim(); //輸入信息確認 var wellname = param.username.length; //字符長度確認 console.log(inputUserName, wellname) if (userid.test(inputUserName) ){ //xxx.test是檢測函數(shù)。 return true; }else{ wx.showModal({ title: '提示', showCancel:false, content: '姓名輸入錯誤' }); return false; } }, checkPassword:function(param){ var phone = util.regexConfig().phone; //校驗手機號 var inputPassword = param.password.trim(); //核對輸入手機號 var password = param.password.length; if (phone.test(inputPassword) && password == 11 ){ //驗證手機號格式及長度 return true; }else{ wx.showModal({ title: '提示', showCancel: false, content: '手機號輸入錯誤' }); return false; } }, checkUserInfo:function(param){ var username = param.username.trim(); var password = param.password.trim(); var goodname = param.username; //提取帳號 var goodpass = param.password; //提取密碼 var that = this; if (username == goodname && password == goodpass){ //無需存貯,只為驗證 setTimeout(function(){ wx.showToast({ title: '', icon: 'success', duration: 1500 }); that.setLoginData2(); that.redirectTo(param); },2000); }else{ wx.showModal({ title: '提示', showCancel:false, content: '信息有誤,請重新輸入' }); this.setLoginData2(); } }, redirectTo:function(param){ //需要將param轉(zhuǎn)換為字符串 param = JSON.stringify(param); wx.redirectTo({ url: '../main/index?param='+ param//參數(shù)只能是字符串形式,不能為json對象 }) }, onGotUserInfo: function (e) { //授權(quán)過后不再調(diào)起 // console.log(e.detail.errMsg) console.log(e.detail.userInfo) var tip = e.detail.userInfo; if (tip == undefined){ wx.redirectTo({ url: '../login/index', }) }else{ wx.setStorage({ //存儲數(shù)據(jù)并準備發(fā)送給下一頁使用 key: "myMessage", data: e.detail.userInfo, }) } }, })
在這里進行引用驗證,
var xxx = util.regexConfig().xxx ;這里的第二個xxx是你自己命名的變量,姓名或者郵箱或者手機號進行對應(yīng)選擇你在util.js中的變量命名。第一個xxx是你當前要引用的變量名
成功后的提示
以上所述是小編給大家介紹的小程序之簡單登錄注冊表單驗證詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
javascript函數(shù)的4種調(diào)用方式與this的指向
本文主要介紹了javascript函數(shù)的4種調(diào)用方式與this(上下文)的指向,文中有詳細的代碼示例,感興趣的同學可以參考閱讀一下2023-05-05JavaScript作用域、閉包、對象與原型鏈概念及用法實例總結(jié)
這篇文章主要介紹了JavaScript作用域、閉包、對象與原型鏈,結(jié)合實例形式總結(jié)分析了javascript中變量與函數(shù)的作用域、閉包、對象、原形鏈相關(guān)概念、用法及注意事項,需要的朋友可以參考下2018-08-08JavaScript canvas實現(xiàn)跟隨鼠標移動小球
這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)跟隨鼠標移動小球,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-02-02layui表格數(shù)據(jù)復選框回顯設(shè)置方法
今天小編就為大家分享一篇layui表格數(shù)據(jù)復選框回顯設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09