用户输入数字时,Vue.js可以添加逗号吗?

Mor*_*ahi 1 javascript jquery vue.js laravel-5 vue-component

我看到了这个主题,但这是Jquery,我怎样才能将其更改为Vue.js?在Vue.js中是否支持v-on我的错误在哪里.抱歉我的英语很糟糕.

<div id="vue">
    <input v-model="amountModel" v-on:keyup="AddCammas()" value="{{price}}">
</div>

<script>
   el: #vue,
   methods:{
      AddCammas : funtion(){
          if(event.which >= 37 && event.which <= 40) return;

          $(this).val(function(index, value) {
             this.message = this.amountModel
                .replace(/\D/g, "")
                .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
           });
      } 
   }   
</script>
Run Code Online (Sandbox Code Playgroud)

Roy*_*y J 10

你根本不需要jQuery.你watch的变量,在watch函数中,计算重新格式化的版本,然后使用它将它设置回你的变量nextTick(所以它不会在手表完成之前发生变异).

new Vue({
  el: '#vue',
  data: {
    price: 0
  },
  watch: {
    price: function(newValue) {
      const result = newValue.replace(/\D/g, "")
        .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
      Vue.nextTick(() => this.price = result);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.min.js"></script>
<div id="vue">
  <input type="text" v-model="price" />{{price}}
</div>
Run Code Online (Sandbox Code Playgroud)

  • 如果`input type =“number”`,有什么办法可以工作吗? (2认同)