vue-element 表单之登录页面使用
0. 先留下属性表格
表单验证:Form 组件提供了表单验证的功能,只需要通过 rules
属性传入约定的验证规则,并将 Form-Item 的 prop
属性设置为需校验的字段名即可。
1. 表单属性表(el-form)
2. 表单项属性表(el-form-item)
3. 表单方法表(el-form)
4. 表单校验
- 完整的表单校验需要三个组件完成配合,分别是
el-form
,el-form-item
,表单项,如el-input
- el-form 负责绑定model和rules (注意不是v-model,且是 :model和 :rules),还有绑定ref(是ref=“”)
- el-form-item 负责绑定prop
- el-input 负责双向绑定具体的表单数据 v-model
- 手动兜底校验
详细校验请看这
5. 一个登录的页面(el-card\el-form\el-input\密码显示与隐藏\el-button\表单项校验\兜底校验\表单重置)
要使用的话记得导入element组件库和下载scss哦!
<template>
<div class="login-page">
<el-card>
<template #header> 登录页面 </template>
<el-form
ref="formRef"
:model="formData"
:rules="formDataRules"
label-width="80px"
label-position="left"
>
<el-form-item label="用户名:" prop="username">
<el-input
type="text"
name="username"
v-model="formData.username"
placeholder="请输入用户名"
>
</el-input>
</el-form-item>
<!-- show-password 最右边的显示隐藏密码 -->
<el-form-item label="密码:" prop="password">
<el-input
type="password"
placeholder="请输入密码"
name="password"
v-model="formData.password"
show-password
></el-input>
</el-form-item>
<el-button type="primary" @click="doLogin">登录</el-button>
<el-button @click="doReset">重置</el-button>
</el-form>
</el-card>
</div>
</template>
<script>
export default {
name: 'login-page',
data () {
return {
formData: {
username: '',
password: ''
},
formDataRules: {
username: [
{ required: true, message: '用户名不能为空', trigger: 'blur' }
],
password: [
{ required: true, message: '密码不能为空', trigger: 'blur' },
{ pattern: /^\d{6,10}$/, message: '密码为6-10位', trigger: 'blur' }
]
}
}
},
methods: {
doLogin () {
this.$refs.formRef.validate((valid) => {
if (valid) {
console.log(valid)
}
})
},
doReset () {
this.$refs.formRef.resetFields()
}
}
}
</script>
<style lang="scss" scoped>
.login-page {
min-height: 100px;
align-items: center;
justify-content: space-around;
.el-card {
width: 420px;
text-align: center;
margin: 50px auto;
// scss的深度选择器:当我们给组件设置scoped的时候,此时我们组件的css样式只会对自己的内容生效,不会对子组件里面的内容生效。
::v-deep .el-card__header {
height: 60px;
background-color: #409eff;
color: aliceblue;
font-size: 24px;
line-height: 30px;
}
}
.el-form {
padding: 0 20px;
}
}
</style>
效果图:
表单属性图来自:element组件之form表单,在此表示感谢!