返回顶部

elementUI——el-form表单校验,trigger为blur,但只会在第一次修改后校验,再次修改校验无效

参考: https://blog.csdn.net/Nancy_2017/article/details/89881573

 

我的问题:第一次修改手机号后,点击其他地方,会校验。再次修改手机号,点击其他地方,校验信息仍是上次的错误信息。

代码:

...
<el-form
      :model="form"
      ref="form"
      :rules="rules"
      label-width="140px"
    >
      <el-form-item label="手机号:" prop="phone">
        <el-input
          placeholder="请输入"
          v-model="form.phone"
          clearable
        >
        </el-input>
      </el-form-item>
</el-form>
...
data() {
 const validateNumber = (rule, value, callback) => {
      let reg = /^1[34578][0-9]{9}$/;
      if (value === '') {
        return callback(new Error('请输入手机号'));
      } else if (!reg.test(value)) {
        return callback(new Error('请输入正确的手机号'));
      } else {
        callback();
      }
    };
    return {
      form: {
        phone: '',
      },
      rules: {
        phone: [
          {
            required: true,
        validator: validateNumber,
            trigger: 'blur',
          },
        ],
      },
    };
},
...

原因:clearable和trigger: blur不能同时使用

解决方法:

方法1. 去掉clearable

方法2. trigger改为change

 

posted @ 2022-10-19 16:54  前端-xyq  阅读(1280)  评论(0编辑  收藏  举报