使用Vue3,使用其语法糖setup下,根据element-ui框架生成一个表单验证,要求包含验证用户名,密码和确认密码,尽量美观
时间: 2024-05-12 13:17:13 浏览: 144
好的,让我来为您解答这个问题。
首先,您需要安装 element-ui:
```
npm install element-ui -S
```
然后,您可以按照以下步骤生成一个基本的表单验证:
1. 在 components 目录下创建一个名为 Form.vue 的文件。
2. 在文件中添加以下代码:
```vue
<template>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input type="password" v-model="form.password"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input type="password" v-model="form.confirmPassword"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</template>
<script>
import { ref } from 'vue'
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus'
export default {
components: {
ElForm,
ElFormItem,
ElInput,
ElButton
},
setup() {
const form = ref({
username: '',
password: '',
confirmPassword: ''
})
// 表单验证规则
const rules = ref({
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, max: 20, message: '长度在 6 到 20 个字符', trigger: 'blur' }
],
confirmPassword: [
{ required: true, message: '请确认密码', trigger: 'blur' },
{
validator(rule, value, callback) {
if (value !== form.value.password) {
callback(new Error('两次输入的密码不一致'))
} else {
callback()
}
},
trigger: 'blur'
}
]
})
// 提交表单
function submitForm() {
// 校验表单
form.value.$refs.form.validate(valid => {
if (valid) {
// 表单验证通过,提交表单
console.log(form.value)
} else {
console.log('error submit!!')
return false
}
})
}
// 重置表单
function resetForm() {
form.value.$refs.form.resetFields()
}
return {
form,
rules,
submitForm,
resetForm
}
}
}
</script>
```
3. 在 App.vue 中引用 Form.vue 组件:
```vue
<template>
<div id="app">
<Form />
</div>
</template>
<script>
import Form from './components/Form.vue'
export default {
components: {
Form
}
}
</script>
```
这是一个基本的表单验证,您可以根据需要对其进行美化和定制。希望这对您有所帮助。
阅读全文