vee-validate表单验证插件使用

vue2
npm install --save vee-validate@2 



// vee-validete插件:表单验证域
import Vue from 'vue';
import VeeValidate from 'vee-validate';
import zh_CN from 'vee-validate/dist/locale/zh_CN.js'
Vue.use(VeeValidate);
// 表单验证
VeeValidate.Validator.localize('zh_CN', {
    messages: {
        ...zh_CN.messages,
        is: (field) => `${field}必须与密码相同`, // 判断密码是否一致
    },
    // 给检验的field 属性名映射中文名称
    attributes: {
        phone: "手机号",
        code: '验证码',
        password: '密码',
        repassword: '确认密码',
        agree: '协议'
    }
})

// 自定义验证规则
VeeValidate.Validator.extend('agree', {
    validate: (value) => {
        return value;
    },
    messages: (field) => field + '必须同意!'
})





main.js
// vee-validate 验证插件
import '@/plugins/validate.js'



 <label>手机号:</label>

        <input
          type="text"
          placeholder="请输入你的手机号"
          v-model="form.phone"
          name="phone"
          v-validate="{ required: true, regex: /^1\d{10}$/ }"
          :class="{ invalid: errors.has('phone') }"
        />
<span class="error-msg">{{ errors.first("phone") }}</span>

<label>登录密码:</label>
        <input
          type="password"
          placeholder="请输入你的登录密码"
          v-model="form.password"
          name="password"
          v-validate="{ required: true, regex: /^\d{6,20}$/ }"
          :class="{ invalid: errors.has('password') }"
        />
        <span class="error-msg">{{ errors.first("password") }}</span>

 <label>确认密码:</label>
        <input
          type="password"
          placeholder="请输入确认密码"
          v-model="form.repassword"
          name="repassword"
          v-validate="{ required: true, is: form.password }"
          :class="{ invalid: errors.has('repassword') }"
        />
        <span class="error-msg">{{ errors.first("repassword") }}</span>



 <input
          type="checkbox"
          v-model="agree"
          name="agree"
          v-validate="{ required: true, is: true }"
          :class="{ invalid: errors.has('agree') }"
        />
        <span>同意协议并注册</span>
        <span class="error-msg">{{ errors.first("agree") }}</span>


// 注册
    async userRegister() {
      const success = await this.$validator.validateAll();

      if (success) {
        try {
          await this.$store.dispatch("userRegister", this.form);
          this.$router.push("/login");
        } catch (error) {
          alert(error.message);
        }
      }
    },



免责申明:

1. 本站所有教程、文章或资源分享目的仅供大家学习和交流!
2. 如有无法查看或链接失效,麻烦请报告联系管理员处理!
3. 本站无法保证资源或其时效性,恕不接受任何提问。
4. 在本站下载的源码严禁杜绝任何形式的正式商业用途,请去程序官方购买。 所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

学习交流联系

立即查看 了解详情