具有keyCode和条件的Vue.js Keyup事件触发器

时间:2018-09-27 06:34:15

标签: vue.js vuejs2

我想绑定一个条件事件,仅在用户输入特定键时才触发它,例如

1)当标签的值等于标签时,我想绑定事件

<input type="text" v-on="{ keyup: (label == 'Tags') ? $event => onTagAdd($event, index) : {} }"    v-model="value">

onTagAdd: function (oEvent, index){           
        if(oEvent.key === ";"){
            //some code
        }
    }

它按预期工作。

2)此外,我只想在;时触发事件。 (virtual key code = 186),因此我尝试了以下代码

<input type="text" v-on="{ 'keyup.186': (label == 'Tags') ? $event => onTagAdd($event, index) : {} }"    v-model="value">

它不起作用。我已经介绍过vue.js documentation,但是还没有任何解决方法。

该怎么做?

注意:我已经消除了这种方法,因为它给我$ event的IE错误。仍在寻找能够解决问题并支持浏览器兼容性的解决方案。

2 个答案:

答案 0 :(得分:0)

尝试一下,告诉我是否可行。

<input type="text" v-on:keyup.186="{ (label == 'Tags') ? $event => onTagAdd($event, index) : {} }"    v-model="value">

答案 1 :(得分:0)

也许内联样式不支持事件类型中的键码(不确定),请尝试以下方法:

<input type="text" v-on:keyup.186="onTagAdd($event,2)"    v-model="value">

methods: {
        onTagAdd(event,index){
            // put your logic codes here
            console.info('==')
            console.info(event)
            console.info(index)
        }
    }