在 Vue 应用程序中,按下时在输入元素上触发 Key Up 事件。为什么?

In a Vue app, Key Up Event fired on an input element when tabbed into. Why?

这是HTML代码,

<div id="vue-app">
       <h1>data binding</h1>
       <label>Name:</label>
       <input type="text" v-on:keyup="logName" />
    
       <label>Age:</label>
       <input type="text" v-on:keyup="logAge" />
    
</div>

这是脚本:

new Vue({
    el: '#vue-app',

    methods: {
       logName: function() {
          console.log("You entered your name");
       },

       logAge: function() {
           console.log("You entered your age");
       }
    }
});

现在,当我进入“年龄”输入字段时,它会触发“keyup”事件。为什么会这样?

tab 是触发 v-on:keyup 事件的键,请使用 v-on:input 事件代替它:

<div id="vue-app">
       <h1>data binding</h1>
       <label>Name:</label>
       <input type="text" v-on:input="logName" />
    
       <label>Age:</label>
       <input type="text" v-on:input="logAge" />
    
</div>

这是预期的行为,因为任何按键都会触发 keyup 事件。要防止 tab 键触发此事件,您可以尝试:

methods: {
       logName(e) {
          if(e.keyCode === 9) return
          console.log("You entered your name");
       },
       logAge(e) {
           if(e.keyCode === 9) return
           console.log("You entered your age");
       }
    }