为了账号安全,请及时绑定邮箱和手机立即绑定

vue如何解决click和blur冲突的问题啊

vue如何解决click和blur冲突的问题啊

温温酱 2018-07-10 12:13:14
<input @blur="checkName"/>   <button @click="submitform">提交</button>填完input信息直接点击提交,会触发blur 需要再点击一次提交才会触发submitform事件 如何解决啊
查看完整描述

4 回答

?
慕慕5202020

TA贡献1条经验 获得超0个赞

button按钮用touchstart事件代替click,这样两个方法都可以一起触发,但是touchstart事件会比blur先执行

查看完整回答
反对 回复 2021-01-26
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

首先,bluronClick优先级高,那么blur里面验证,如果验证通过,就会继续执行onClick,如果验证不通过,将验证结果给onClick,在onClick里直接return.

如果是异步验证,请使用async await


查看完整回答
反对 回复 2018-07-10
?
潇湘沐

TA贡献1816条经验 获得超6个赞

你这么理解,什么情况失去焦点呢? 就是你的input失去焦点的时候,所以你离开的时候点击了提交的按钮
你可以不要写 @blur 可以点击submitform的时候,获取到input的输入值

   <input v-model="Input_box"/>  <button @click="submitform">提交</button>

     data(){   return{      
                 Input_box:""
   }
}, methods:{
    submitform(){        
      console.log(this.Input_box);
    }
}


查看完整回答
反对 回复 2018-07-10
?
萧十郎

TA贡献1815条经验 获得超13个赞

这个跟vue有毛关系?你点击按钮肯定是失去焦点了啊
我这里直接触发2个事件的啊!

<input @blur="checkName" v-model="val"/>
<button @click="submitform">提交</button>

var vm = new Vue({
    el: ".vueBox",    data: {        val:'',    
    },
    methods: {
        checkName(){
            console.log(1111111,this.val);
        },
        submitform(){
            console.log(222,this.val);
        },
    }

});

https://img1.sycdn.imooc.com//5b4491fd0001a01802440130.jpg

要不然你改

<input @keyup="checkName" v-model="val"/>


查看完整回答
反对 回复 2018-07-10
  • 4 回答
  • 0 关注
  • 7575 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信