国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue中vee validate表單校驗的幾種基本使用

2019-11-19 13:36:57
字體:
來源:轉載
供稿:網友

今天主要記錄一下用vee-validate來進行表單校驗的幾個基本使用。包括最基礎的必填和長度校驗;異步請求服務的校驗(重名校驗),還有延遲校驗。如何引入等就不在這里贅述了,直接進入主題。

1.必填和長度校驗

直接采用v-validate屬性進行配置,不同的校驗采用 ‘|' 隔開。是否有報錯根據 errors.has('userName') 進行判斷,‘userName'對應的是表單的name屬性的值。

errors.first('userName)會展示表單校驗中第一個錯誤信息。

 <el-col :span="4" class="form-label">  <label>用戶名</label> </el-col> <el-col :span="8">  <el-input name="userName" v-model="userName" v-validate="'required|min:2|max:20'"></el-input>  <span v-show="errors.has('userName')" class="error">{{ errors.first('userName') }}</span> </el-col>

結果如下:

從結果我們可以看到,校驗的錯誤信息是展示了,但是默認都是英文的,這個可能有時跟我們實際開發的需求不是一致的。這個我們可以采用

vee-validate的國際化去進行中文的展示。但是這里我要介紹的是另一種方式,如果是系統只需要支持一種語言,我覺得用這種方式就可以。

直接采用 errors.first('userName:required') 即 ‘字段名:校驗規則'  的方式進行判斷進而展示對應提示信息的方式。這個方式可以讓表單在對應校驗不通過時展示我們自己定義對應的個性化提示信息。

優點是:配置簡單,方便實現個性化提示。

<el-col :span="4" class="form-label">  <label>用戶名</label></el-col><el-col :span="8">  <el-input name="userName" v-model="userName" v-validate="'required|min:2|max:20'"></el-input>  <span v-show="errors.first('userName:required')" class="error">用戶名為必填項</span>  <span v-show="errors.first('userName:min')" class="error">用戶名的最小長度為2</span>  <span v-show="errors.first('userName:max')" class="error">用戶名的最大長度為20</span></el-col>

 2.異步校驗 和延遲

異步校驗,主要就是兩部分,一個是校驗器的定義,一個是使用

定義部分:

import { Validator } from 'vee-validate';const emailsDB = [ 'abcd@cc.com'];const isUnique = value => new Promise((resolve) => { setTimeout(() => {  if (emailsDB.indexOf(value) === -1) {   return resolve({    valid: true   });  }  return resolve({   valid: false,   data: {    message: `${value} 已存在.`   }  }); }, 200);});Validator.extend('unique', { validate: isUnique, getMessage: (field, params, data) => data.message});

使用:

 <el-col :span="4" class="form-label">  <label>郵箱</label> </el-col> <el-col :span="8">  <el-input name="email" v-model="email" v-validate="'unique'" data-vv-delay="1000"></el-input>  <span v-show="errors.first('email:unique')" class="error">重復</span> </el-col>

結果:

其中  data-vv-delay="1000"  就是延遲校驗的使用。1000即1000毫秒

以下是幾個例子的完整代碼:

<template>  <div>    <el-form name="myForm" novalidate>      <el-row>        <el-col :span="4" class="form-label">          <label>郵箱</label>        </el-col>        <el-col :span="8">          <el-input name="email" v-model="email" v-validate="'unique'" data-vv-delay="1000"></el-input>          <span v-show="errors.first('email:unique')" class="error">重復</span>        </el-col>        <el-col :span="4" class="form-label">          <label>用戶名</label>        </el-col>         <el-col :span="8">          <el-input name="userName" v-model="userName" v-validate="'required|min:2|max:20'"></el-input>          <span v-show="errors.first('userName:required')" class="error">用戶名為必填項</span>          <span v-show="errors.first('userName:min')" class="error">用戶名的最小長度為2</span>          <span v-show="errors.first('userName:max')" class="error">用戶名的最大長度為20</span>        </el-col>        <!-- <el-col :span="8">          <el-input name="userName" v-model="userName" v-validate="'required|min:2|max:20'"></el-input>          <span v-show="errors.has('userName')" class="error">{{ errors.first('userName') }}</span>        </el-col> -->              </el-row>    </el-form>  </div></template><script>import { Validator } from 'vee-validate';const emailsDB = [  'abcd@cc.com'];const isUnique = value => new Promise((resolve) => {  setTimeout(() => {    if (emailsDB.indexOf(value) === -1) {      return resolve({        valid: true      });    }    return resolve({      valid: false,      data: {        message: `${value} 已存在.`      }    });  }, 200);});Validator.extend('unique', {  validate: isUnique,  getMessage: (field, params, data) => data.message});export default {  data() {    return {      email: '',      userName: ''    }  }}</script><style scoped>.form-label { text-align: right; padding-right: 10px;}.error { color: red;}</style>

總結

以上所述是小編給大家介紹的vue中vee validate表單校驗的幾種基本使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 道真| 房产| 璧山县| 本溪| 马公市| 乾安县| 温州市| 黎城县| 小金县| 广灵县| 博罗县| 佛山市| 自贡市| 浪卡子县| 大悟县| 鄢陵县| 金沙县| 额敏县| 抚州市| 织金县| 庐江县| 藁城市| 留坝县| 西华县| 石城县| 吴桥县| 巴中市| 都匀市| 台中县| 济宁市| 施秉县| 雷山县| 汉源县| 岳阳县| 黄冈市| 通渭县| 德兴市| 五指山市| 汪清县| 扶沟县| 荣成市|