防止输入键修改器-vue2

时间:2018-08-26 19:15:48

标签: vue.js vuejs2

<input @keyup="fetchData(0)">

是否可以防止修饰符(Ctrl + Win + Cmd等)在键盘事件中起作用?只是字母和数字。

我的情况:这是一个名称过滤器,当用户键入字母时,名称列表会根据输入的字母进行更新,但是当用户按下ctrl或ctrl + a时,它也被视为键入事件。

1 个答案:

答案 0 :(得分:1)

您可以从事件中检查keyCode,并且仅当它是字母或数字时才触发获取数据方法

<input @keyup="onKeyUp($event)">

...
methods: {
    conKeyUp(e) {
        if ((e.keyCode >= 48 && e.keyCode <= 90) || (e.keyCode >= 96 && e.keyCode <= 105)) {
            // a-z or 0-9 or numpad 0 - 9
            this.fetchData();
        }
    },
    fetchData() {
        // Fetching data from server...
    }
}

当字段的值发生如下更改时,另一种方法将触发获取数据:

<input v-model="myModel">

...
data: {
    myModel: null
},
watch: {
    myModel() {
        this.fetchData();
    }
},
methods: {
    fetchData() {
        // Fetching data from server...
    }
}