【发布时间】:2020-11-21 16:33:06
【问题描述】:
我正在尝试验证通过 v-model 连接到某些数据的输入标签上的某些输入数据(例如数字)。
问题是,如果我有无效数据(例如“1e”),数据将是“”。显然,空输入也是如此。
如何区分空输入或无效输入?
var app = new Vue({
el: "#app",
data: {
budget: "",
},
methods: {
updateBudget() {
// do some input validation here. E.g.
if (this.budget === "") {
console.log("This is triggered on both:");
console.log("(1) empty input -> budget = ''");
console.log("(2) invalid input, e.g. -> budget = '1e'");
console.log("Problem: I can't split this in the above cases!");
};
},
},
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
<div id="app">
<input v-model="budget" type="number" placeholder="Budget" min="0" step="0.01" @input="updateBudget" />
</div>
我很感激一个提示。谢谢
【问题讨论】:
-
您在哪里执行验证?您是否依赖浏览器来做到这一点?否则,请查看 Vee-validate 或 vuelidate
-
我更新了问题。我想在组件中验证它,然后通过自定义事件将它发送给父级。我希望我的问题变得更清楚。关键是,无效输入和空输入的预算都是“”。