el-form的model、prop屬性和表單校驗(yàn)等使用
Vue 的 el-form 提供了表單校驗(yàn)功能, :rules 屬性設(shè)置校驗(yàn)規(guī)則,并通過(guò) el-form-item 的 prop 屬性綁定校驗(yàn)規(guī)則。組件封裝,讓前端校驗(yàn)更方便。
具體使用過(guò)程中,有幾個(gè)容易出錯(cuò)的地方,本文來(lái)整理一下。每一個(gè)坑都是筆者親自趟過(guò)的,寫(xiě)完本文后,以后應(yīng)該不會(huì)再踏入相同的坑。
el-form 的 model 屬性
el-form 的 model 屬性是用來(lái)指定表單使用的數(shù)據(jù)的,雖然 el-form 指定了 model 對(duì)象,但是,理論上,vue 并沒(méi)有限制 el-input 綁定的數(shù)據(jù),el-form 內(nèi)部的 el-input 組件依然可以綁定其他數(shù)據(jù)。
需要注意的是,如果要用 rules 進(jìn)行表單校驗(yàn),那么 el-input 綁定的元素必須是 el-form 的 model 的直接屬性,否則會(huì)導(dǎo)致校驗(yàn)失敗。
<el-form :model="groupData" :rules="rules" ref="groupForm"> <el-form-item label="分組名稱:" prop="name"> <el-input v-model="groupData.name"/> </el-form-item> </el-form>
這段代碼中 el-form 的 model 是 groupData,那么 el-form-item 中所有需要校驗(yàn)的表單的 的 model 也必須是 groupData.xxx ,即 groupData 對(duì)象的直接屬性。
el-from-item 的 prop 屬性
el-from-item 的 prop 屬性必須與 el-input 中需要校驗(yàn)的表單屬性一致。
<el-form-item label="策略名稱" prop="strategyName"> <el-input v-model="data.strategyName" /> </el-form-item>
要校驗(yàn)的表單 model 是 data.strategyName,那么 prop 的值也必須是 strategyName,否則無(wú)法正確完成校驗(yàn),出現(xiàn)明明已經(jīng)已經(jīng)輸入了表單值,但是還是出現(xiàn)校驗(yàn)失敗的提示信息。
多表單校驗(yàn)
el-form-item 內(nèi)部如果包含多個(gè)表單,默認(rèn)校驗(yàn)失敗時(shí)會(huì)將所有表單高亮,例如:
雖然只有第二個(gè)表單沒(méi)有輸入,但是校驗(yàn)失敗時(shí)會(huì)同時(shí)高亮兩個(gè)表單。怎么只對(duì)第二個(gè)表單高亮呢?
解決辦法是用嵌套:
外層 el-form-item 是正常的信息,內(nèi)層對(duì)第二個(gè)表單再次嵌套 el-form-item 指定校驗(yàn)屬性:
<el-form-item label="任務(wù)執(zhí)行時(shí)間:" required> <el-select v-model="data.executeCycle"> <el-option label="每小時(shí)" value="hour">每小時(shí)</el-option> <el-option label="每日" value="day">每日</el-option> <el-option label="每周" value="week">每周</el-option> <el-option label="每月" value="month">每月</el-option> </el-select> <el-form-item prop="executeTime"> <el-date-picker v-model="data.executeTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="選擇日期時(shí)間" default-time="00:00:00"> </el-date-picker> </el-form-item> </el-form-item>
將日期輸入框包裹在新的 el-form-item 中,外層的 el-form-item 添加 requred 顯示前面的紅星,就可以只對(duì)該屬性校驗(yàn)了,將第二個(gè)表單再嵌套后,校驗(yàn)結(jié)果就正常了:
復(fù)雜屬性
<el-form-item label="執(zhí)行周期 " prop="config.gapTime"> <el-input type="number" :min="1" v-model="data.config.gapTime"> </el-input> <el-form-item>
此時(shí),該屬性對(duì)應(yīng)的 rules 定義也必須是對(duì)象:
rules: { config: { gapTime: [ { required: true, message: '請(qǐng)輸入執(zhí)行周期', trigger: 'blur' }, ], }, },
否則,就會(huì)出現(xiàn)明明已經(jīng)輸入了值,但是還是提示校驗(yàn)錯(cuò)誤信息。
注意
表單校驗(yàn)的時(shí)候,犯了幾個(gè)低級(jí)錯(cuò)誤,記錄如下:
- el-form 下的 el-input 使用的數(shù)據(jù)不是 el-form 的 model 數(shù)據(jù),導(dǎo)致校驗(yàn)失?。?/li>
- el-form 的 :rules 屬性敲錯(cuò)了,忘記了冒號(hào),導(dǎo)致傳遞的是個(gè)字符串;
- el-form-item 的 prop 和 el-input 表單的屬性不一致導(dǎo)致校驗(yàn)失敗。
到此這篇關(guān)于el-form的model、prop屬性和表單校驗(yàn)等使用的文章就介紹到這了,更多相關(guān)el-form model、prop屬性和表單校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- el-form實(shí)現(xiàn)表單和圖片手動(dòng)上傳和校驗(yàn)功能
- vue實(shí)現(xiàn)多個(gè)el-form表單提交統(tǒng)一校驗(yàn)的2個(gè)方法
- elementUI動(dòng)態(tài)嵌套el-form表單校驗(yàn)舉例詳解
- 使用el-form之表單校驗(yàn)自動(dòng)定位到報(bào)錯(cuò)位置問(wèn)題
- vue中的el-form表單rule校驗(yàn)問(wèn)題(特殊字符、中文、數(shù)字等)
- vue之el-form表單校驗(yàn)以及常用正則詳解
- v-for中動(dòng)態(tài)校驗(yàn)el-form表單項(xiàng)的實(shí)踐
- el-form表單實(shí)現(xiàn)校驗(yàn)的示例代碼
相關(guān)文章
詳解vue-cli3開(kāi)發(fā)Chrome插件實(shí)踐
這篇文章主要介紹了vue-cli3開(kāi)發(fā)Chrome插件實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05vue3?錨點(diǎn)定位的多種實(shí)現(xiàn)方式
這篇文章主要介紹了vue3?多種方法的錨點(diǎn)定位,使用?Vue?Router?導(dǎo)航守衛(wèi)可以簡(jiǎn)化導(dǎo)航邏輯、統(tǒng)一管理導(dǎo)航邏輯和進(jìn)行權(quán)限控制,但需要學(xué)習(xí)和理解相關(guān)概念,并且需要手動(dòng)編寫(xiě)和管理導(dǎo)航守衛(wèi)的邏輯,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07淺談Vue static 靜態(tài)資源路徑 和 style問(wèn)題
這篇文章主要介紹了淺談Vue static 靜態(tài)資源路徑 和 style問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11vue項(xiàng)目是如何運(yùn)行起來(lái)的
這篇文章主要介紹了vue項(xiàng)目是如何運(yùn)行起來(lái)的,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Vue?watch中監(jiān)聽(tīng)值的變化,判斷后修改值方式
這篇文章主要介紹了Vue?watch中監(jiān)聽(tīng)值的變化,判斷后修改值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04