当前位置: 首页 > 知识库问答 >
问题:

vue.js - vue 表单验证,关于 trigger: 'blur',trigger: "change" 和 validator 之间有什么关联?

竺鸿骞
2023-05-04

项目升级,原来的选择器需要改为支持多选,所以页面绑定的值也就由字符串变成了字符串数组,

但是表单验证规则不变,之前的单选是必选项,现在的多选也要至少选择一项。

所以需要自定义验证规则,将原配置项中的 required: true 改为了 validator:validatorFun,

validatorFun 如下:

  data() {
    const validatorFun=(rule, value, callback)=>{
      if(value && value.length!=0){  callback() }
      else{ callback(new Error()) }
    }
    return {
        ......

但是改完之后就出问题了,没改之前,这条规则的 trigger 值为 ‘change’ 是,刚打开页面是不会提示验证失败信息的,只有修改了内容,或者直接点提交 (this.$refs['form'].validate) 才会验证。但是改成数组之后,我只要打开页面就会爆出验证失败的消息,但是在这之前,代码里并没有修改数组。

又将 trigger 的值改为 ‘blur’ 后,虽然打开页面的时候不会报提示消息,但是我选择器失焦的时候也不会验证了,只有提交的时候才会验证。

我在 validatorFun 方法体内加 debugger 测试也是,trigger:‘blur’ 时,失焦不会被执行,trigger : ‘change’ 时,页面刚打开就被执行了。这是怎么引起的?该如何解决?

共有1个答案

潘慈
2023-05-04

多选时,选择器v-model绑定的初始属性要改成空数组,例如:[]

 类似资料:
  • 描述 (Description) 它调用给定事件的回调函数。 语法 (Syntax) object.trigger(event,[args]) 参数 (Parameters) event - 它绑定一个对象。 args - 它将值/参数传递给回调函数。 例子 (Example) <!DOCTYPE html> <html> <head> <title>Event Trigger

  • 你知道 Android L 中新增的 JobScheduler 吗,就像其名字所表示的,你可以定义自己的作业,然后在某些条件下执行,例如是充电时、断网时或者设备空闲时等等。这是非常棒的特性,但只在 API 21 上才有效,老版本怎么办呢? 你现在可以试试 Trigger。 Trigger 的特性 单个作业支持多个条件组合 内部条件:充电中\无法检测网络状态\设备空闲 支持作业持久化,这意味着可在设

  • 本文向大家介绍Bootstrap Validator 表单验证,包括了Bootstrap Validator 表单验证的使用技巧和注意事项,需要的朋友参考一下 在线演示地址:http://www.shouce.ren/study/api/s/jq--BootstrapValidator--index.html 使用方法,代码如下所示: 以上所述是小编给大家介绍的Bootstrap Validato

  • 创建触发器 获取触发器 删除触发器

  • scroll-trigger 是一个 Angular 模块可以在滚动到某个点时触发动作。 Demo: 这里有一个 plunker demo 。慢慢地滚动页面,可以看到图片会在你滚到它的位置时加载。  

  • 本文向大家介绍vue+vue-validator 表单验证功能的实现代码,包括了vue+vue-validator 表单验证功能的实现代码的使用技巧和注意事项,需要的朋友参考一下 官方文档:http://vuejs.github.io/vue-validator/zh-cn/index.html github项目地址:https://github.com/vuejs/vue-validator 下