vue中模糊搜索keyup在中文输入法下输入英文无效的解决方法

keyup事件在中文输入法下输入英文,vue中对应的val属性值为空。控制台显示并没有获取到任何值,但是input中确实有字母。纳尼?说好的双向绑定呢?

要解决这个问题可以采用watch+keyup事件的方法。

watch首先可以解决keyup失效的问题,可以检测到值的变化。但是也因此产生了问题,当点击下拉列表里的问题输入进input框的时候,watch会再一次检测到值的变化,重复调用接口。

 所以,我们就立个flag好了... 

  代码如下:

 //使用watch+keyup时间解决 keyup在中文输入法下输入英文不能调取search方法的问题
  watch: {
    val: {
      handler: function () {
        if (this.flag === "true") {
          this.search();
          this.flag = "flase"
        }

      },
      deep: true
    }
  }

  keyup事件:

  flag 值默认为 flase

flagStatus () {
   this.flag = "true"
},

注:

   flag解决了重复调用接口的问题,只有在flag值为true的时候,我们才允许他调用接口。

   值什么时候为true呢?

   只有在你按下键盘的时候...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值