91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue中vee validate表單校驗的示例分析

發布時間:2021-08-10 11:14:19 來源:億速云 閱讀:133 作者:小新 欄目:web開發

這篇文章主要為大家展示了“vue中vee validate表單校驗的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“vue中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>

結果如下:

vue中vee validate表單校驗的示例分析

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

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>

結果:

vue中vee validate表單校驗的示例分析

其中  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表單校驗的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遵义市| 沙洋县| 新和县| 临夏市| 武穴市| 安化县| 临高县| 开鲁县| 南昌市| 信宜市| 宾阳县| 纳雍县| 嘉善县| 宁河县| 黔南| 合阳县| 天等县| 黄山市| 峨边| 鹤庆县| 青田县| 石首市| 扎兰屯市| 望谟县| 同心县| 台前县| 布拖县| 龙岩市| 西乡县| 巴彦县| 靖江市| 道孚县| 雷波县| 宁远县| 昌邑市| 泾源县| 宜良县| 金湖县| 开封县| 吕梁市| 琼中|