如何使用 vee-validate 在 vuetify stepper 中验证表单
How to validate forms inside vuetify stepper using vee-validate
我正在尝试验证 vuetify
的步进器组件内的表单。我设法以某种方式进行了验证。但我很困惑这是否是在 vuetify stepper 上进行验证的好方法。
我使用的方法数与向导中的步骤数相同。我正在使用 vee-validate
进行范围验证。
methods: {
submitForm1(scope) {
debugger;
this.$validator.validateAll(scope).then(result => {
if (result) {
this.e1 = 2;
}
});
},
submitForm2(scope) {
debugger;
this.$validator.validateAll(scope).then(result => {
if (result) {
this.e1 = 3;
}
});
}
},
数据:
data() {
return {
e1: 0,
name: "",
resultStep1: true
};
}
Vuetify 步进器: Form1
<v-stepper-content step="1">
<form data-vv-scope="form1">
<v-card color="lighten-1" class="mb-5" height="200px">
<v-card-text>
<v-text-field
v-model="name" label="Contract Type"
:counter="10"
:error-messages="errors.collect('name')"
v-validate="'required|max:10'"
data-vv-name="name" required data-vv-scope="form1">
</v-text-field>
</v-card-text>
</v-card>
<v-btn color="secondary" @click.native="submitForm1('form1')">Next</v-btn>
<v-btn flat>Cancel</v-btn>
</form>
</v-stepper-content>
表格 2:
<v-stepper-content step="2">
<form data-vv-scope="form2">
<v-card color="lighten-1" class="mb-5" height="200px">
<v-card-text>
<v-text-field
v-model="email" label="Contract Email"
:counter="10"
:error-messages="errors.collect('email')"
v-validate="'required|max:10'"
data-vv-name="email" required data-vv-scope="form2">
</v-text-field>
</v-card-text>
</v-card>
<v-btn color="secondary" @click.native="submitForm2('form2')">Next</v-btn>
<v-btn flat>Cancel</v-btn>
</form>
</v-stepper-content>
按照我的实施方式,如果步骤增加,似乎很难管理表单和验证。因为我需要用步骤数添加方法数。
此外,如果我想要一个用于返回表单的按钮,请建议我。我应该怎么做?
假设 e1
是步进器的 v 模型:
我想你可以分解你的 submitForm
函数,像这样:
methods: {
submitForm(scope) {
debugger;
this.$validator.validateAll(scope).then(result => {
if (result) {
this.e1++;
}
});
},
goBack(){
this.e1--
}
}
在你的 html 中这样称呼即可:
@click.native="submitForm('yourFormScopeName')"
并且您可以将 goBack
方法绑定到其他按钮或任何您想要的地方
我正在尝试验证 vuetify
的步进器组件内的表单。我设法以某种方式进行了验证。但我很困惑这是否是在 vuetify stepper 上进行验证的好方法。
我使用的方法数与向导中的步骤数相同。我正在使用 vee-validate
进行范围验证。
methods: {
submitForm1(scope) {
debugger;
this.$validator.validateAll(scope).then(result => {
if (result) {
this.e1 = 2;
}
});
},
submitForm2(scope) {
debugger;
this.$validator.validateAll(scope).then(result => {
if (result) {
this.e1 = 3;
}
});
}
},
数据:
data() {
return {
e1: 0,
name: "",
resultStep1: true
};
}
Vuetify 步进器: Form1
<v-stepper-content step="1">
<form data-vv-scope="form1">
<v-card color="lighten-1" class="mb-5" height="200px">
<v-card-text>
<v-text-field
v-model="name" label="Contract Type"
:counter="10"
:error-messages="errors.collect('name')"
v-validate="'required|max:10'"
data-vv-name="name" required data-vv-scope="form1">
</v-text-field>
</v-card-text>
</v-card>
<v-btn color="secondary" @click.native="submitForm1('form1')">Next</v-btn>
<v-btn flat>Cancel</v-btn>
</form>
</v-stepper-content>
表格 2:
<v-stepper-content step="2">
<form data-vv-scope="form2">
<v-card color="lighten-1" class="mb-5" height="200px">
<v-card-text>
<v-text-field
v-model="email" label="Contract Email"
:counter="10"
:error-messages="errors.collect('email')"
v-validate="'required|max:10'"
data-vv-name="email" required data-vv-scope="form2">
</v-text-field>
</v-card-text>
</v-card>
<v-btn color="secondary" @click.native="submitForm2('form2')">Next</v-btn>
<v-btn flat>Cancel</v-btn>
</form>
</v-stepper-content>
按照我的实施方式,如果步骤增加,似乎很难管理表单和验证。因为我需要用步骤数添加方法数。
此外,如果我想要一个用于返回表单的按钮,请建议我。我应该怎么做?
假设 e1
是步进器的 v 模型:
我想你可以分解你的 submitForm
函数,像这样:
methods: {
submitForm(scope) {
debugger;
this.$validator.validateAll(scope).then(result => {
if (result) {
this.e1++;
}
});
},
goBack(){
this.e1--
}
}
在你的 html 中这样称呼即可:
@click.native="submitForm('yourFormScopeName')"
并且您可以将 goBack
方法绑定到其他按钮或任何您想要的地方