【发布时间】:2022-01-15 12:12:54
【问题描述】:
我正在制作一个基本表单,我想让按钮仅在所有字段都有效时才可见。
模板:
<template>
<main>
<form @submit="send" method="POST">
<input id="name" type="text" placeholder="Nome" required minlength="3" maxlength="25" v-model="nome" @input="checkName" />
<div class="err">{{errName}}</div>
<input id="lastName" type="text" placeholder="Cognome" required minlength="3" maxlength="25" v-model="cognome" @input="checkLastName" />
<div class="err">{{errLastName}}</div>
<input id="email" type="email" placeholder="Email" required minlength="7" v-model="email" @input="checkEmail" />
<div class="err">{{errEmail}}</div>
<input id="password" type="password" placeholder="Password" required minlength="3" maxlength="25" v-model="password" @input="checkPass" />
<div class="err">{{errPass}}</div>
<button :style="buttonStyle" type="submit">INVIA</button>
</form>
</main>
</template>
脚本(仅数据()):
data() {
return {
nome: '',
cognome: '',
email: '',
password: '',
errName: '',
errLastName: '',
errEmail: '',
errPass: '',
validName: false,
validLastName: false,
validEmail: false,
validPass: false,
validForm: (this.validName && this.validLastName && this.validEmail && this.validPass),
buttonStyle: (this.validForm) ? 'display: block' : 'display: none'
}
}
我期待 this.validForm 在所有其他人都为真后变为真,但相反,无论我做什么,它都保持假。
我尝试过的一些事情:
- 将所有
valid*设置为 true // 不起作用
validName: true,
validLastName: true,
validEmail: true,
validPass: true,
- 将
validForm设置为 true // 不起作用
validForm: true,
buttonStyle: (this.validForm) ? 'display: block' : 'display: none'
- 在
buttonStyle上交换返回 // 显示按钮
buttonStyle: (this.validForm) ? 'display: none' : 'display: block'
正如我所说,最后一次尝试实际上显示了按钮......但这显然不是我想要的。
我是 Vue 新手,所以我仍在学习所有功能。
【问题讨论】:
标签: javascript html vue.js