监听input text 文本改变事件记录

2017-09-05 13:14:19

    一开始的时候,使用

<input type="text" v-model="userinput" v-on:change="changeHandler">
var app = new Vue({
  el: '#app',
  data: {
    userinput: ''
  },
  methods: {
    changeHandler: function(event) {
      // change of userinput, do something
    }
  }})

    在input框中输入东西的时候,并没有触发change事件,而是在失去焦点的时候触发。

    最终通过watch事件达到了需求,特此记录一下,关键代码如下:

<input type="text" v-model="userinput">
var app = new Vue({
  el: '#app',
  data: {
    userinput: ''
  },
  watch: {
    userinput: function(val, oldVal) {
      // change of userinput, do something
    }
  }})

    附上一个简单的demo

<!DOCTYPE html><html><head>
  <title>[Vue.js] Input Change Event</title>
  <meta charset="utf-8" />
  <meta name="viewport" content="initial-scale=1, minimal-ui" /></head><body style="text-align: center;"><div id="app">
  <form>
    <input type="text" autocomplete="off" v-model="userinput">
  </form>
  <div>value: {{ value }}</div>
  <div>old value: {{ oldValue }}</div></div><script src="https://unpkg.com/vue@2.1.10/dist/vue.js"></script><script src="app.js"></script></body></html>
var app = new Vue({
  el: '#app',
  data: {
    userinput: '',
    value: '',
    oldValue: ''
  },
  watch: {
    userinput: function(val, oldVal) {
      this.value = val;
      this.oldValue = oldVal;
    }
  }})