<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當我們使用一個從未使用過的網站時,想要註冊賬號,點選註冊賬號時看到的網頁就是註冊頁註冊頁例子如下:
我們看到以下的註冊頁中,有兩大類資訊:
包括使用者名稱,密碼和email,他們都有自己的 取值規則 ,例如使用者名稱顯示不得小於3個字元
一種是簡訊或郵箱驗證,這是為了繫結手機號或郵箱,
還有一種就下圖中的真人驗證,為了避免機器人惡意存取資訊量過大,通過驗證計算題或者識別字母的方式來確定是真人存取
目的:
資料校驗
本次所使用的技術棧:vue2.0,axios,element-ui,vuex,vue-router
需要實現的介面如下:
初始html模板如下
小貼士:
input框的前置icon圖示通過prefix-icon="el-icon-user"實現
如果想要實現點選小眼睛實現密碼顯示和保密.可以在el-input框便籤加上show-password實現
<!-- 註冊的表單區域 --> <el-form> <!-- 使用者名稱 --> <el-form-item> <el-input placeholder="請輸入使用者名稱" prefix-icon="el-icon-user"></el-input> </el-form-item> <!-- 密碼 --> <el-form-item> <el-input type="password" prefix-icon="el-icon-lock" placeholder="請輸入密碼"></el-input> </el-form-item> <!-- 確認密碼 --> <el-form-item> <el-input type="password" prefix-icon="el-icon-lock" placeholder="請再次確認密碼"></el-input> </el-form-item> <el-form-item> <el-button type="primary" class="btn-reg">註冊</el-button> <el-link type="info" @click="$router.push('/login')">去登入</el-link> </el-form-item> </el-form>
首先在data中定義表單資料物件,包含使用者名稱,密碼和第二次密碼
data() { return { form: { username: "", password: "", repassword: "", }, }
然後在表單的三個input框中使用v-model繫結上面的三個資料
<!-- 註冊的表單區域 --> <el-form > <el-form-item > <el-input placeholder="請輸入使用者名稱" prefix-icon="el-icon-user" v-model="form.username" ></el-input> </el-form-item> <el-form-item> <el-input placeholder="請輸入密碼" prefix-icon="el-icon-lock" v-model="form.password" show-password ></el-input> </el-form-item> <el-form-item > <el-input placeholder="請輸入再次確認密碼" prefix-icon="el-icon-lock" v-model="form.repassword" show-password ></el-input> </el-form-item> </el-form>
首先在data中定義資料校驗規則
formRules: { username: [ { required: true, message: "使用者名稱不能為空", trigger: "blur" }, { pattern: /^[a-zA-Z0-9]{1,10}$/, message: "使用者名稱必須是1-10位的字母數位", trigger: "blur", }, ], password: [ { required: true, message: "密碼不能為空", trigger: "blur" }, { pattern: /^S{6,15}$/, message: "密碼必須是6-15位的非空字元", trigger: "blur", }, ], repassword: [ { required: true, message: "請再次確認密碼", trigger: "blur" }, { pattern: /^S{6,15}$/, message: "密碼必須是6-15位的非空字元", trigger: "blur", }, // 使用 validator 屬性,來應用自定義的校驗規則 { validator: (rule, value, callback) => { // 形參中的 value 表示被繫結的元素的值 if (value !== this.form.password) { // 校驗失敗 callback(new Error("兩次密碼不一致!")); } else { // 校驗成功 callback(); } }, trigger: "blur", }, ], },
然後對html中的form部分標籤中增加內容
<!-- 註冊的表單區域 --> <el-form :model="form" :rules="formRules" ref="formRef"> <el-form-item prop="username"> <el-input placeholder="請輸入使用者名稱" prefix-icon="el-icon-user" v-model="form.username" ></el-input> </el-form-item> <el-form-item prop="password"> <el-input placeholder="請輸入密碼" prefix-icon="el-icon-lock" v-model="form.password" show-password ></el-input> </el-form-item> <el-form-item prop="repassword"> <el-input placeholder="請輸入再次確認密碼" prefix-icon="el-icon-lock" v-model="form.repassword" show-password ></el-input> </el-form-item> </el-form>
首先給html中的註冊按鈕繫結一個點選事件@click='doRegister'
<el-button type="primary" style="width: 100%" @click="doRegister">註冊</el-button>
然後在methods裡定義事件doRegister:
// 2.方法 methods: { // 2.1註冊 doRegister() { // (1).檢查表單時是否校驗通過 this.$refs.formRef.validate(async (valid) => { if (valid) { // (2).校驗通過,傳送ajax const { data: res } = await this.$axios.post("/api/reg", { ...this.form, }); } }); }, },
根據ajax返回的資料中的code來判斷,是註冊成功還是註冊失敗
(這裡要通過後端提供的介面檔案來確定什麼code是失敗,什麼code是成功)
我這裡code為0是成功,1是失敗
// 2.方法 methods: { // 2.1註冊 doRegister() { // (1).檢查表單時是否校驗通過 this.$refs.formRef.validate(async (valid) => { if (valid) { // (2).校驗通過,傳送ajax const { data: res } = await this.$axios.post("/api/reg", { ...this.form, }); // (3).處理資料 if (res.code === 0) { // 跳轉登入頁 this.$router.push("/login"); // 彈出資訊框 this.$message.success(res.message); } else { this.$message.error(res.message); } } }); }, },
業務思路
1.獲取資料
2.校驗資料
3.傳送請求
4.處理響應資料
以上就是validate 註冊頁的表單資料校驗實現詳解的詳細內容,更多關於validate 註冊頁表單資料校驗的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45