中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

vue form check 表單驗證的實現代碼

發布時間:2020-08-25 03:35:17 來源:腳本之家 閱讀:432 作者:tomastong 欄目:web開發

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 表單驗證的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

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

AI

保德县| 合作市| 盐边县| 石狮市| 三江| 兰坪| 新晃| 聂拉木县| 布尔津县| 紫云| 娄底市| 遂溪县| 太和县| 石柱| 青铜峡市| 灵川县| 泰宁县| 沧源| 株洲县| 本溪市| 乌鲁木齐县| 五家渠市| 苍溪县| 大安市| 隆化县| 峡江县| 迁安市| 汝州市| 宜州市| 福贡县| 营口市| 淮安市| 瑞金市| 新干县| 新余市| 盐边县| 鄄城县| 大冶市| 宁都县| 巴林右旗| 额尔古纳市|