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呢?
只有在你按下鍵盤的時候...