您好,登錄后才能下訂單哦!
vue-form-check (基于vue的表單驗證)具體實現代碼如下所述:
安裝
// 安裝 npm i vue-form-check -S
引用
// 引用(eg. 在工程的main.js下) import vueFormCheck from 'vue-form-check' Vue.use(vueFormCheck)
調用
this.$checkForm(current, config) @params current 是當前校驗對象 config 是校驗規則對象 config.alias 別名 config.type 配置項數據類型 config.required 是否必填 config.rule 正則校驗 config.depend 先決條件(省事可以在callback里直接判斷,推薦寫,true校驗本項;false不校驗本項) config.callback 靈活校驗(rule同時出現,只處理callback,參數是當前值,true校驗通過;false校驗不通過) @return object 對象 不通過的話 {alias: '電話', type: 'rule'} alias是配置的別名,type可以是['type'|'required'|'rule'] 校驗通過的話 {} 空對象 ps. 驗證表單可以寫在mixin里,這里簡單處理直接寫在組件里了
Component
// 使用例子 new Vue({ data() { return { params: { id: '1234', person: { name: 'jackie', age: '27', phone: '18266666666', home: ['羅湖區田心村'] } } } }, methods: { submit() { //... console.log('submit success'); }, check() { let obj = this.$checkForm(this.params, { id: { alias: 'id', type: 'string' }, // 必填校驗 'person.name': { alias: '學校', type: 'string', required: true }, // 正則校驗 'person.phone': { alias: '電話', type: 'string', rule: /^1[345678][0-9]{9}$/ }, // 靈活校驗,如數值、日期區間驗證 'person.age': { alias: '年齡', callback(value) { if (value < 30 && value > 18) { return true; } return false; } }, // 先決校驗,如果電話等于以下,校驗地址信息 'person.home': { alias: '方向', type: 'array', required: true, depend() { if (this.params.person.phone === '18210517463') { return true; } return false; } } }); const length = Object.keys(obj).length; if (length === 0) { return this.submit(); } switch (obj.type) { case 'type': this.$alert(`${obj.alias}的類型定義錯誤`, '提示'); break; case 'required': this.$alert(`${obj.alias}是必填項`, '提示'); break; case 'rule': this.$alert(`${obj.alias}的輸入不符合規范`, '提示'); break; default: break; } } } });
補充:vue-form表單驗證是否為空值
重點部分:
點擊表單的 submit按鈕 觸發form 部分 @submit=”submit”事件:
submit事件 定義在js部分:
prevent:文檔上說了在事件后面加上 .prevent就可以阻止默認事件了。
form @submit.prevent=”submit” <form @submit.prevent="submit"> <input type="text" v-model="userName" placeholder="請輸入你的姓名" class="name-style" maxlength="20"/> <div class="sex"> <select v-model="selectedSex"> <option>boy</option> <option selected = "selected">girl</option> </select> </div> <input type="text" v-model="phoneNumber" placeholder="請輸入你的手機號" class="phone-number-style"/> <div class="guide-style"> <select v-model="selectedGuild"> <option selected="selected" value="">請選擇一個導購: </option> <option v-for="guild in guilds" value ="{{ guild.name }}">{{ guild.name }}</option> </select> </div> <input type="submit" value ="注冊" class="register-style"/> </form> data () { return { userName: '', //請輸入你的姓名 selectedSex: '',//選擇性別 phoneNumber: '',//請輸入你的手機號 guilds: [], selectedGuild: '' ///請選擇一個導購 } }, methods: { //1.重點是這個方法 submit () {} - form @submit.prevent="submit" -重點是這個方法 submit () {}, //2.可以在這里向服務器發送數據 submit () { if (!this.userName) { showToast('請輸入姓名!') return false } if (!this.phoneNumber) { showToast('請輸入手機號碼!') return false } if (!checkTel(this.phoneNumber)) { showToast('手機號格式不正確') return false } if (!this.selectedGuild) { showToast('請選擇導購!') return false } return true } }
總結
以上所述是小編給大家介紹的vue form check 表單驗證的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。