gpt4 book ai didi

javascript - vue.js v-model 验证和显示字段

转载 作者:行者123 更新时间:2023-11-28 17:36:07 25 4
gpt4 key购买 nike

在此代码中:

<button type="button @click="editing=true">Edit</button>
<form v-show="editing" @submit="onSubmit">
<textarea v-model="text"></textarea>
</form>
<div> Current value: {{text}} </div>

new Vue({ //...
data: {
editing: false,
text: 'initial value..'
}
methods: {
onSubmit: function() { if (this.value.length < 5) alert("error") }
}
}

如何确保 {{text}} 仅显示经过验证的值?我是否必须创建两个数据成员 - 一个用于表单,另一个用于显示?这将导致我的代码出现一些困惑(我有很多大型表单)。
也许有一个用于验证的 v-model 更新 Hook ?
这个问题的要点 - 是否可以避免有两个数据成员。

最佳答案

v-model对于<textarea></textarea>翻译为:

<textarea
v-bind:value="text"
v-on:input="text = $event.target.value">

所以你最后一个问题的答案是否定的,没有钩子(Hook)。您要么不使用v-model通过实现类似上面的代码或使用第二个变量用于保存您在问题中考虑的最后一个有效字符串。后者可以是:

const app = new Vue({
el: "#app",
data: {
editing: false,
text: 'Initial value..',
lastValid: 'Initial value..',
},
watch: {
text(value) {
if (value.length > 4) {
this.lastValid = value;
}
},
},
})
<script src="https://unpkg.com/vue"></script>

<div id="app">
<div>
<form>
<textarea v-model="text "></textarea>
</form>
<div> Current value (legth > 4): {{lastValid}} </div>
</div>
</div>

关于javascript - vue.js v-model 验证和显示字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com