el-form表單驗證的一些實用方法總結(jié)
前言
Form 組件提供了表單驗證的功能,只需要通過 rules 屬性傳入約定的驗證規(guī)則,并將 Form-Item 的 prop 屬性設置為需校驗的字段名即可。
前置知識點
- 根據(jù)文檔說明,model為表單的數(shù)據(jù)對象,el-form通過model綁定數(shù)據(jù)。
- reles為表單驗證規(guī)則對象,其中字段名要與model中的字段名一一對應
- el-form-item 容器,通過 label 綁定標簽,prop屬性設置為需要驗證的字段名
- 表單組件通過 v-model 綁定 model 中的數(shù)據(jù)
表單校驗相關屬性
- hide-required-asterisk:是否隱藏必填字段的標簽旁邊的紅色星號(隱藏必錄標識)
- inline-message:是否以行內(nèi)形式展示校驗信息(驗證消息是否在一行顯示)
方式一(無表單嵌套)
以一般的form表單為例:
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"
class="demo-ruleForm">
<el-form-item label="活動名稱" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form>
一般在vue中這樣來寫,就可以對表單進行驗證。
data(){
return {
ruleForm: { name: '' },
rules: {
name: [
{ required: true, message: '請輸入活動名稱', trigger: 'blur' },
{ min: 3, max: 5, message: '長度在 3 到 5 個字符', trigger: 'blur' }
]
}
}
},
如果有一些復雜的驗證規(guī)則,也可以選擇自定義驗證, validator
data() {
const userValidator = (rule, value, callback) => {
if (value.length > 3) {
callback()
} else {
callback(new Error('用戶名長度必須大于3'))
}
}
return {}
}
rules: {
user: [
{ validator: userValidator, trigger: 'change' }
]
}
方式二(表單嵌套)
嵌套的表單,一般業(yè)務場景是,有一些表單項需要按照條件顯示或者隱藏,data里面的model數(shù)據(jù)可能會是對象里面套對象的,el-form也同樣支持嵌套的驗證,寫法一般如下:
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"
class="demo-ruleForm">
<el-form-item label="活動名稱">
<el-input v-model="ruleForm.name"></el-input>
<el-form-item prop="info.name">
<el-input v-model="ruleForm1.info.name"></el-input>
</el-form-item>
</el-form-item>
<el-form>
data(){
return {
ruleForm: {
info: {
name: ''
}
},
}
}
rules里面同樣也可以這樣寫
rules: {
info: {
name: [{ required: true, message: '請選擇', trigger: 'change' }],
}
}方式三(動態(tài)表單驗證)
除了在 Form 組件上一次性傳遞所有的驗證規(guī)則外還可以在單個的表單域上傳遞屬性的驗證規(guī)則.
動態(tài)添加form-item的時候,可以使用
<el-form-item prop="email" label="郵箱" :rules="[ { required: true, message: '請輸入郵箱地址', trigger: 'blur' }, { type: 'email', message: '請輸入正確的郵箱地址', trigger: ['blur', 'change'] } ]" > <el-input v-model="dynamicValidateForm.email"></el-input> </el-form-item>
方式四(動態(tài)添加校驗規(guī)則)
根據(jù)條件判斷是否需要某種驗證規(guī)則時,一個簡單的使用場景就是,通過不同的type去顯示不同的錯誤信息。
const message =
this.type === 'addFirst'
? '請輸入一級名稱'
: this.type === 'addChild'
? '請輸入二級名稱'
: this.type === 'addThree' && this.editChannelItem
? '請選擇三級名稱'
: '請輸入三級名稱';
const validatorHandle = (rule, value, callback) => {
if (value) {
callback();
} else {
callback(new Error(message));
}
};
const newRule = [...this.formInfoRules.name, { validator: validatorHandle, trigger: 'blur' }];
this.formInfoRules = Object.assign({}, this.formInfoRules, { name: newRule });
方式五(手動控制校驗狀態(tài))
error錯誤信息
validate-status驗證狀態(tài)。 success 驗證成功, error驗證失敗, validating驗證中,''未驗證
這樣使用:
<el-form-item
:error="validateFormState.error"
:validate-status="validateFormState.state"
>
</el-form-item>
validateFormState = {
periodSendDateError: '',
periodSendDateStatus: 'success',
};
在驗證成功或者失敗的時候去手動控制error和validate-status的值即可。總結(jié)
到此這篇關于el-form表單驗證的一些實用方法總結(jié)的文章就介紹到這了,更多相關el-form表單驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
5個可以加速開發(fā)的VueUse函數(shù)庫(小結(jié))
VueUse為Vue開發(fā)人員提供了大量適用于Vue2和Vue3的基本Composition API 實用程序函數(shù)。具有一定的參考價值,感興趣的可以了解一下2021-11-11
Vue3項目中配置TypeScript和JavaScript的兼容
在Vue3開發(fā)中,常見的使用JavaScript(JS)編寫代碼,但也會有調(diào)整編寫語言使用TypeScript(TS)的需求,因此,在Vue3項目設置中兼容TS和JS是刻不容緩的重要任務,2023-08-08
Vue實現(xiàn)頁面的局部刷新(router-view頁面刷新)
本文主要介紹了Vue實現(xiàn)頁面的局部刷新(router-view頁面刷新),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
vue自定義組件實現(xiàn)v-model雙向綁定數(shù)據(jù)的實例代碼
vue中父子組件通信,都是單項的,直接在子組件中修改prop傳的值vue也會給出一個警告,接下來就用一個小列子一步一步實現(xiàn)了vue自定義的組件實現(xiàn)v-model雙向綁定,需要的朋友可以參考下2021-10-10

