Vuetify 表单验证:Returns "False" 无指示
Vuetify Form Validation: Returns "False" Without Indication
我有一个正在尝试验证的 vuetify 表单,它总是返回 false。我为几个输入设置了规则,当规则失败时我希望看到警告(或类似的东西),但我没有得到失败原因的指示。
<template>
<v-dialog class="FormContainer" v-model='open' max-width="700" @click:outside="CloseForm">
<v-container style="background-color:#f6f6f6 !important; box-shadow: 0px 10px 10px #00000029;
border: 4px solid #dbdbdb;
border-radius: 20px;">
<div class="personaClose"><v-icon x-large @click="ChangeDisplay">mdi-close</v-icon></div>
<v-form v-if="!DisplayForm" ref="form" lazy-validation>
<div class="TitleText">Submit a Program to Creators Connect</div>
<div class="SubtitleText">
Creators Connect is an online resource hub that helps future creators
across the U.S. identify pathways into the manufacturing industry. If
you work with or are aware of a program that we should include, please
submit the information on the form below. If you would like to submit
multiple programs, please submit a new form for each one.
</div>
<div class="HrBar" style="margin-bottom:0px !important" />
<div class="InputGroup InputHeight">
Program Name*
<v-text-field
v-model="FormResults['ProgramName']"
outlined
rounded
:rules="[(v) => !!v || 'Program name is required']"
required
placeholder="E.g., Automotive Technology Program"
/>
</div>
<div class="InputGroup InputHeight">
Company/Organization*
<v-text-field
v-model="FormResults['LocationName']"
outlined
rounded
:rules="[(v) => !!v || 'Company/Organization is required']"
required
placeholder="E.g., Midlands Technical College"
/>
</div>
<v-btn plain class='yellowButton' id='ResourceBtn' @click="SubmitForm()">Submit</v-btn>
</v-form>
</v-container>
</v-dialog>
</template>
有几个输入,都是围绕与这些相同的样式设计的。其中一些是精选的。我的开发工具控制台没有问题。
<script>
export default {
data: () => ({
open:true,
DisplayForm: false,
ResourceTypeBtn: ["Reccomend a resource", "I am a member of a company"],
FormResults: {
Submitter: {
Name: "",
Email: null,
},
ProgramName: "",
LocationName: "",
ProgramDescription: "",
ProgramWebsite: null,
ProgramType: {
Define: "",
Location: [{ location: "" }],
Cost: "",
Length: "",
PreReqs: "",
},
ContactDetails: {
Name: "",
Phone: "",
Email: "",
},
},
}),
methods: {
SubmitForm() {
this.$refs.form.validate();
// console.log(this.$refs.form.validate())
console.log(this.FormResults);
if(this.$refs.form.validate()){
this.$emit("submittion");
console.log(this.FormResults);
this.DisplayForm = !this.DisplayForm;
}
// this.DisplayForm = this.$refs.form.validate();
}
}
</script>
表单应该检查它是否有效,如果有效,请转到另一个屏幕。
您的 v-form
中似乎缺少 v-model
。 v-model 值表示表单是否存在验证错误。
在codepen中检查这个例子:
https://codepen.io/cmfc31/pen/eYGErXJ?editors=101
我有一个正在尝试验证的 vuetify 表单,它总是返回 false。我为几个输入设置了规则,当规则失败时我希望看到警告(或类似的东西),但我没有得到失败原因的指示。
<template>
<v-dialog class="FormContainer" v-model='open' max-width="700" @click:outside="CloseForm">
<v-container style="background-color:#f6f6f6 !important; box-shadow: 0px 10px 10px #00000029;
border: 4px solid #dbdbdb;
border-radius: 20px;">
<div class="personaClose"><v-icon x-large @click="ChangeDisplay">mdi-close</v-icon></div>
<v-form v-if="!DisplayForm" ref="form" lazy-validation>
<div class="TitleText">Submit a Program to Creators Connect</div>
<div class="SubtitleText">
Creators Connect is an online resource hub that helps future creators
across the U.S. identify pathways into the manufacturing industry. If
you work with or are aware of a program that we should include, please
submit the information on the form below. If you would like to submit
multiple programs, please submit a new form for each one.
</div>
<div class="HrBar" style="margin-bottom:0px !important" />
<div class="InputGroup InputHeight">
Program Name*
<v-text-field
v-model="FormResults['ProgramName']"
outlined
rounded
:rules="[(v) => !!v || 'Program name is required']"
required
placeholder="E.g., Automotive Technology Program"
/>
</div>
<div class="InputGroup InputHeight">
Company/Organization*
<v-text-field
v-model="FormResults['LocationName']"
outlined
rounded
:rules="[(v) => !!v || 'Company/Organization is required']"
required
placeholder="E.g., Midlands Technical College"
/>
</div>
<v-btn plain class='yellowButton' id='ResourceBtn' @click="SubmitForm()">Submit</v-btn>
</v-form>
</v-container>
</v-dialog>
</template>
有几个输入,都是围绕与这些相同的样式设计的。其中一些是精选的。我的开发工具控制台没有问题。
<script>
export default {
data: () => ({
open:true,
DisplayForm: false,
ResourceTypeBtn: ["Reccomend a resource", "I am a member of a company"],
FormResults: {
Submitter: {
Name: "",
Email: null,
},
ProgramName: "",
LocationName: "",
ProgramDescription: "",
ProgramWebsite: null,
ProgramType: {
Define: "",
Location: [{ location: "" }],
Cost: "",
Length: "",
PreReqs: "",
},
ContactDetails: {
Name: "",
Phone: "",
Email: "",
},
},
}),
methods: {
SubmitForm() {
this.$refs.form.validate();
// console.log(this.$refs.form.validate())
console.log(this.FormResults);
if(this.$refs.form.validate()){
this.$emit("submittion");
console.log(this.FormResults);
this.DisplayForm = !this.DisplayForm;
}
// this.DisplayForm = this.$refs.form.validate();
}
}
</script>
表单应该检查它是否有效,如果有效,请转到另一个屏幕。
您的 v-form
中似乎缺少 v-model
。 v-model 值表示表单是否存在验证错误。
在codepen中检查这个例子: https://codepen.io/cmfc31/pen/eYGErXJ?editors=101