vue.js - 如何复制 v-models :value with :value?

标签 vue.js input v-model

使用@inputv-model以及@input:value之间的行为不同.

v-model 与 :value 的区别是什么,而我仅使用 :value 则无法得到?

我创建了一个example at jsFiddle显示差异:顶部输入字段只允许在输入中输入数字,而底部则允许输入所有内容。

我需要做什么才能仅使用 @input:value 获得相同的功能?

最佳答案

您可以通过向输入添加引用并通过它更新输入值来实现此目的。检查这里。 https://jsfiddle.net/RiddhiParekh/nzfr0xy3/

模板=>

    <div id="app">
  <div>
    <input @input="mask1" 
           v-model="message1" 
           type="text" 
           placeholder="Only numbers are allowed">
    <p>Message1 is: {{ message1 }}</p>
    <hr/>
    <input @input="mask2" 
           :value="message2"
           type="text"
           ref="myInput"
           placeholder="Try numbers">
    <p>Message2 is: {{ message2 }}</p>

  </div>
</div>

脚本=>

 new Vue({
  el: "#app",
  data: {
   message1: "",
   message2: ""
  },
  methods: {
    mask1(input){
        const validCharsForNumberFields = /[0-9]*(,|\.)?[0-9]*/gm
      this.message1 = input.target.value.match(validCharsForNumberFields)[0]
        },
    mask2(input){
      const validCharsForNumberFields = /[0-9]*(,|\.)?[0-9]*/gm
      console.log(input)
      this.$refs.myInput.value = input.target.value.match(validCharsForNumberFields)[0]
      this.message2 = this.$refs.myInput.value
    },

  }
})

关于vue.js - 如何复制 v-models :value with :value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54744558/

相关文章:

javascript - 如何使文本框只接受 0-10 之间的数字,并且只接受小数部分的 0.5?

vue.js - 我应该如何使用 v-model 和 v-on :change for an input select correctly?

cordova - 如何在 quasar/cordova/vue.js 移动应用程序上嵌入外部主页?

javascript - Bootstrap 4 : How to make the item of list-group active when clicking it via jquery or vuejs?

input - 使用 Ionic 2 将焦点设置在输入上

html - 占位符未出现在输入中

javascript - vuex中的数据如何设置初始值?

javascript - 为什么 Vue.js 输入值没有更新?

javascript - 自动完成 Vue Js

vue.js - @Nuxt/Apollo 如何从 gql 查询中删除 "__typeName"