validator验证器使用注意事项

validator 中的方法记得 callback()回调

今天在业务需求中,遇到了对于我来说有些复杂的表单规则校验rules,一般的表单校验如下就能满足一些校验需求,但是,有时候会遇到一些比较复杂的校验就需要用到validator验证器,去进行校验,

在element-ui中看到了validator验证器的使用,试着去用一下,结果没有报错,但是提交按钮会没有任何反应,就用最笨的方法去进行一一验证,最后发现还是自己粗心大意了,所以写篇博客记录一下小小日常,

rules: {
          name: [
            { required: true, message: '请输入活动名称', trigger: 'blur' },
            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
          ],
          region: [
            { required: true, message: '请选择活动区域', trigger: 'change' }
          ],
          date1: [
            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
          ]
        }

接下来说一下validator验证器的使用,代码的话就只上关键性代码了, 不能让我整个

<script></script>标签吧

哈哈哈哈哈……

<el-form-item label="金额" prop="money">
    <el-input v-model="form.money" placeholder="请输入金额" readonly/>
</el-form-item>
<el-form-item label="数量" prop="spendQty">
   <el-input v-model.number="form.spendQty" placeholder="请输入数量" />
</el-form-item>
 data() {

    // 校验......value是我们从输入框输入的值,左右两个参数照写就得了
    var checkQty = (rule, value, callback) => {
      if (!value) {
        return callback(new Error('数字不能为空'));
      }

      // 此处校验需注意,要在v-model后加.number,否者输入的是字符串,这地方就失效了
      if (!Number.isInteger(value)) {
        return callback(new Error('请输入数字值'));
      }
      // 获取消费类型,X100,Y200
      var spendType = this.form.type;
      if (spendType == 200) {
        var allocQty = this.form.qty;
        if (value > allocQty) {
           callback(new Error('优惠卷数为' + allocQty + ',数量不能大于Y的数量'));
        } else {  // 在执行这个if的时候,忘记了如果不大于之后的callback()的回调,导致新增提交的时候,不大于时没有回调,确定按钮点着没反应,
          callback();
        }
      } else {
        callback();
      }
    };
    return {
// 表单校验
      rules: {
        money: [
          { required: true, message: "金额不能为空", trigger: "blur" },
          {
            //此处用了正则表达式校验
            pattern: /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/, 
            message: "请输入金额数字,最多两位小数",
          },
        ],
        qty: [
          { validator: checkQty, trigger: "blur" },      // validator 验证器 trigger类型有blur和change
        ],
      },

}

自我感觉在注释中写的差不多了,就不在一一赘述了,就说一下自我认为需要注意的点吧!

验证器validator中的方法是这个欧,如下图:(我不想多嘴的,我只是为了凑字数而已)

checkQty方法中需要注意的是,如果有什么 if(xxx){} 啥的其它逻辑判断的话,记得看你的程序最后是否有 callback() 方法的回调,如果没有,需要加上 callback() 回调,如果你走了 if 里面的方法,里面有回调,如果不走 if  ,然后你就没有 callback() 的回调,那么可能你也会像我一样出现下面这种情况,往下滑……

 

如果 checkQty 方法最后没有执行 回调  callback(),那么在你点击提交按钮的时候,程序走到了这里的规则校验,然后下面的程序就不在运行,就会导致提交按钮没反应,最主要的是我没看到任何报错提示,可能是我知识浅薄无法毫查吧!

 最后强调:

validator 中的方法记得 callback()回调

来点感慨,抒发哈紧张的情绪

对于一个前端都没玩过的人来说,突然写前端代码真的是折磨死人了,但是难归难,当你能看懂会写之后,发现前端还是挺有意思, 我也是最近一段时间才去接触前端知识,去菜鸟驿站从HTML开始学习,一个标签一个练习的去敲,就是为了形成一种肌肉记忆,在你知道要写啥的时候,大脑还没有反应手就给你敲出来了。

每天不断去学习,每天积累一点,突然想到一句经典名言:

“每当天上掉下一粒沙,于是形成了撒哈拉,每当天上掉下一滴水,于是形成了太平洋”,

每当经验汇聚成河、成海,你就是能主宰你的航向,让我们杨帆启航……,去看看这繁华世界。

当你遇到无法解决的问题的时候,你不要放弃,你看,你还有进步空间,哈哈哈哈哈哈……

心之所向,梦之所想,骚年,努力吧!!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue Validator是一个用于Vue.js的表单验证插件,可以方便地对表单进行验证。下面详细介绍一下Vue Validator使用方法。 首先,我们需要在Vue项目中安装Vue Validator。可以通过命令`npm install vue-validator`来安装该插件。 安装完成后,在Vue组件中,需要先引入Vue Validator,并在`Vue.use(VueValidator)`中启用它。 接着,在需要进行验证的表单中,添加一个`validator`属性来指定验证规则。可以使用`v-validate`指令来设置验证规则。例如: ```html <input type="text" v-model="name" v-validate="'required|alpha'"> ``` 在上述代码中,我们使用`v-validate`指令来设置验证规则为必填(required)和只允许字母(alpha)。 然后,在表单中,可以使用`v-show`指令来根据验证结果来显示或隐藏错误信息。例如: ```html <div v-show="$validator.name.required">姓名不能为空</div> <div v-show="$validator.name.alpha">姓名只能包含字母</div> ``` 在上述代码中,使用`v-show="$validator.name.required"`来根据`name`字段的必填验证结果来显示或隐藏错误信息。 此外,还可以在Vue组件中定义自定义验证规则。可以使用`Vue.validator`方法来定义自定义验证规则。例如: ```javascript Vue.validator('customRule', function(val) { return val === 'validValue'; }); ``` 在上述代码中,我们自定义了一个验证规则`customRule`,它的值必须等于`'validValue'`。这样,我们就可以在表单中使用`v-validate="'customRule'"`来应用该自定义规则。 总结一下,Vue Validator使用方法包括:安装插件、启用插件、设置验证规则、显示错误信息以及自定义验证规则。以上就是Vue Validator使用方法的详细解释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值