输入VUE后如何捕获输入?

时间:2018-02-24 16:47:11

标签: javascript vue.js vuejs2

基本上我需要的是每次值更改时调用find方法。我不能使用VUE的watch选项,因为我需要为很多模型调用相同的函数。

KeyPressKeyDown几乎没有效果,除非它返回没有最后一个字符的值。例如,如果您输入123,则text函数中的find将为12

<input type="text" v-model="name" v-on:keypress="find(name)">
<input type="text" v-model="name" v-on:keyDown="find(name)">


methods: {
    find: function(text) {
        console.log(text, this.name)
    }
}

2 个答案:

答案 0 :(得分:0)

您可以从传递给函数的键盘事件中提取键值。以下是小提琴:https://jsfiddle.net/brijkishor/bokcrzwt/6/

JS:
new Vue({
  el: '#app',
  data: {
    message: 'Input key press',
    name: ''
  },
  methods: {
    find: function(keyEvent) {
      console.log("key entered: ", keyEvent.key, ' : name: ', this.name);
    }
  }
})
// HTML
<div id="app">
  <input type="text" v-model="name" v-on:keydown="find">
  name: {{name}}
</div>

答案 1 :(得分:0)

解决,看看这里https://jsfiddle.net/0phLz311/6/不要忘记打开DevTools控制台以查看方法find的预期行为。