如何用 :value 复制 v-models :value?
How do I replicate v-models :value with :value?
我在使用 @input
和 v-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
},
}
})
我在使用 @input
和 v-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
},
}
})