日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

詳解vant2?自動檢查表單驗證?-validate_React

作者:朱龍旭看世界 ? 更新時間: 2022-11-26 編程語言

下面給大家介紹下vant2 自動檢查表單驗證 -validate

ref 給?

<van-form @submit="onSubmit" ref="form"> 標簽 ;

// 檢驗手機號是否合格
      await this.$refs.form.validate("mobile");

data里面定義的規則 rules對象 ;

rules: {
        mobile: [
          // 必填
          { required: true, message: "請填寫用戶名" },
          // 1  3-9  開頭  在家 9 個0-9數字
          { pattern: /^1[3-9]\d{9}$/, message: "手機號不正確" },
        ],
        code: [
          { required: true, message: "請填寫密碼" },
          { pattern: /\d{6}$/, message: "驗證碼錯誤" },
        ],
      },

使用規則:

<van-field
        v-model="user.mobile"
        name="mobile"
        icon-prefix="zlx"
        left-icon="shouji"
        maxlength="11"
        placeholder="請輸入手機號"
        :rules="rules.mobile"
      />

vant2表單組件Field在iOS上校驗出錯

問題描述

需要校驗用戶的輸入,長度超出進行錯誤提示,所以使用了正則表達式進行校驗,代碼如下。

<van-field v-model="location" name="location" label="地點" placeholder="請輸入出差地" :rules="[{ required: true, pattern: /^\S{1,7}$/g, message: '請輸入7個以內字符' }]" />

在安卓手機上可以正常校驗,但iOS系統無論輸入幾個字符都會提示錯誤,原因可能是iOS輸入法會輸入特殊字符

解決方法

監聽輸入,去掉其中的特殊字符再進行判斷(實時校驗)

watch: {
    location(val) {
      if (val.replace(/\s/g, '').length > 7) {
      	// 添加錯誤處理
      	// ....
        Toast.fail('長度超出')
        this.locationError = true
      } else {
        this.locationError = false
      }
    }
}

定義組件rules的validator方法(點擊提交時觸發校驗)

<van-field v-model="location" name="location" label="地點" placeholder="請輸入出差地" :rules="[{ required: true, validator, message: '請輸入7個以內字符' }]" />

validator(val) {
	return val.replace(/\s/g, '').length > 7 ? false : true
}

原文鏈接:https://www.cnblogs.com/zhulongxu/p/16801497.html

欄目分類
最近更新