原理
为 rules 属性传入约定的验证规则,并将 form-Item 的 prop 属性设置为需要验证的特殊键值 :model和:rules中字段的名称需要一致
示例:
< template>
< el-form ref = " ruleFormRef" :model = " ruleForm" :rules = " rules" >
< el-form-item label = " 用户名" prop = " name" >
< el-input v-model = " ruleForm.name" />
</ el-form-item>
< el-form-item>
< el-button type = " primary" @click = " submitForm(ruleFormRef)" > Create </ el-button>
</ el-form-item>
</ el-form>
</ template>
< script lang = " ts" setup >
import { reactive, ref } from "vue" ;
import type { FormInstance } from "element-plus" ;
const ruleFormRef = ref< FormInstance> ( ) ;
const ruleForm = reactive ( {
name : ""
} ) ;
const rules = reactive ( {
name : [
{ required : true , message : "请输入用户名" , trigger : "blur" } ,
{ min : 3 , max : 5 , message : "用户名长度在 3 到 5 个字符" , trigger : "blur" }
]
} ) ;
const submitForm = async ( formEl : FormInstance | undefined ) => {
if ( ! formEl) return ;
await formEl. validate ( ( valid, fields ) => {
if ( valid) {
console. log ( "数据正常" ) ;
} else {
console. log ( "数据有误" , fields) ;
}
} ) ;
} ;
</ script>