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呢?

   只有在你按下鍵盤的時候...

發佈了35 篇原創文章 · 獲贊 29 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章