input失去焦点验证格式_vue2多文本框的表单校验(3)-失去焦点触发校验

vue2多文本框的表单校验(3)-失去焦点触发校验

第一步,在 子组件中

blur 事件中派发 blur

@blur="blur2($event.target.value)" @input="inputAction($event.target.value)"

v-bind:name="nam" :value="value" class="inf-input" :class="className"

type="text" :placeholder="placeholder"

autocomplete="off"/>

{{ errormessage}}

import sharedStateMixin from '@/services/status/sharedState.mixin'

export default {

mixins: [sharedStateMixin],

props: ['nam', 'className', 'value', 'v_validate', 'data_vv_as', 'placeholder', 'haserror', 'errormessage', 'clicksubmit'],

methods: {

inputAction: function (val2) { //keyup

// this.val = val2

// this.value = val2

this.$emit('input', val2)

// this.$emit('blur', val2)//才真正触发this.value的改变

console.log('this.value', this.value)

this.sharedState.bus.$emit('clearInputError',this.nam);

},

blur2: function (val) {

// 没用 this.val = val //如果缺少,那么ajax 设置data中的变量时,校验不通过,校验认为没有输入

// this.value = val

this.$emit('blur', val)

}

}

}

与输入中即时校验有两点区别:

1,this.$emit('blur', val) 没有放在 input 事件中,而是放在 blur 中.

2,即时校验没有派发clearInputError 事件

父组件中注册clearInputError事件:

this.sharedState.bus.$on('clearInputError',function (name) {

console.log('clear error:',name)

this.errors && this.errors.remove(name)

}.bind(this))

}

请参考我的前几篇博客:

vue2多文本框的表单校验(1)-提交时才校验

vue2多文本框的表单校验(2)-输入中即时校验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值