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