【发布时间】:2021-03-22 10:31:36
【问题描述】:
在这里,我编写了一个用于验证 Vue 中的表单输入字段的代码。当输入字段为空时,它工作正常,表单没有导航到下一步。我的问题是,当该字段为空时,用户尝试导航到下一步,输入字段边框颜色应变为红色。如果一个字段为空,而用户正尝试导航另一步骤,则导航应阻止,并且空字段的边框应显示为红色。
<div id="vk_app">
<form>
<div v-if="step === 1">
<h1>Step One</h1>
<p>
<legend for="name">Your Name:</legend>
<input id="name" name="name" v-model="name">
<input id="name" name="name" v-model="age">
</p>
<button @click.prevent="next()">Next</button>
</div>
<div v-if="step === 2">
<template>
<input id="name" name="name" v-model="address">
<input id="name" name="name" v-model="h_no">
<input id="name" name="name" v-model="mobile">
<button @click.prevent="prev()">Previous</button>
<button @click.prevent="next()">Next</button>
</template>
</div>
<div v-if="step === 3">
<template>
<input id="name" name="name" v-model="subject">
<input id="name" name="name" v-model="occupation">
<button @click.prevent="prev()">Previous</button>
<button @click.prevent="next()">Next</button>
</template>
<button @click.prevent="prev()">Previous</button>
<button @click.prevent="submit()">Save</button>
</div>
</form>
</div>
vue.js
const app = new Vue({
el:'#vk_app',
data() {
return {
step:1,
name:null,
age:null,
city:null,
state:null,
}
},
methods:{
prev() {
if(this.checkForm()) {
this.step--;
}
},
next() {
if(this.checkForm()) {
this.step++;
}
},
checkForm: function (e) {
if (this.name && this.age) {
return true;
}
this.errors = [];
if (!this.name) {
this.errors.push('Name required.');
}
if (!this.age) {
this.errors.push('Age required.');
}
e.preventDefault();
}
}
});
【问题讨论】:
-
@Shaikh Salima,解决了吗?
-
是的,先生。谢谢
-
我还需要帮助验证 vue-form 生成器
-
@Saik Salima 很棒。然后,您可以将答案标记为已接受。
-
我还没有检查过那个问题。