vue3使用element表单校验
时间: 2023-05-28 11:05:27 浏览: 335
1. 引入 element-plus 库
```javascript
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';
```
2. 在 template 中使用表单组件
```html
<template>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<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 v-model="form.password" type="password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
```
3. 在 script 中定义表单数据、校验规则和提交方法
```javascript
<script>
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';
export default {
name: 'FormDemo',
components: {
ElForm,
ElFormItem,
ElInput,
ElButton
},
data() {
return {
form: {
username: '',
password: ''
},
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' }
]
}
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 校验通过,提交表单
console.log('submit form:', this.form);
} else {
// 校验不通过,提示用户
console.log('validate failed');
}
})
}
}
}
</script>
```
4. 在 methods 中定义 submitForm 方法,使用 $refs.form.validate() 方法校验表单数据。如果校验通过,则提交表单数据;如果校验不通过,则提示用户。
5. 在校验规则中,可以设置多个校验规则。每个规则都包含三个属性:required 表示是否必填,message 表示校验不通过时的提示信息,trigger 表示触发校验的事件。常用的触发事件有 blur(失去焦点时校验)和 change(值改变时校验)。
6. 注意:在 Vue 3 中,必须使用 v-model 指令绑定表单数据,不能使用 v-bind:value 和 v-on:input,否则校验不会生效。
阅读全文