快速解決Vue、element-ui的resetFields()方法重置表單無效的問題
問題:
使用this.$ref['form'] .resetFields()無法重置表單項(xiàng)
原因:
1.沒有給表單添加ref屬性
<el-form ref="form"></el-form>
2.表單項(xiàng)el-form-item沒有添加prop屬性,prop屬性需要與input框綁定的屬性一致
<el-form ref="form" :model="sizeForm" label-width="80px" size="mini"> <el-form-item label="活動名稱" prop="name"> <el-input v-model="sizeForm.name"></el-input> </el-form-item> </el-form>
3.還有一個經(jīng)常出現(xiàn)這種問題的場景是,當(dāng)使用vuex的時候,新建表單與編輯表單復(fù)用,此時上述屬性跟方法都添加了也無法達(dá)到清除表單的效果。
此時我們再重新看一下element-ui的官方文檔
方法名 | 說明 |
---|---|
resetField | 對該表單項(xiàng)進(jìn)行重置,將其值重置為初始值并移除校驗(yàn)結(jié)果 |
clearValidate | 移除該表單項(xiàng)的校驗(yàn)結(jié)果 |
重點(diǎn):resetField()方法不是將表單重置為空,而是重置為初始值
所以當(dāng)我們打開新建表單的時候,表單項(xiàng)綁定的屬性值為空,在提交表單后,表單項(xiàng)綁定的值不為空,此時再打開新建表單是會有上一次的值出現(xiàn),此時resetField()方法是無法清空表單的,因?yàn)樵谶@次操作的時候,屬性初始值就不為空。
解決方法:
在提交表單成功后對綁定的值進(jìn)行方法重置
// 重置表單項(xiàng)屬性 resetForm () { return { remark: '', name: '' } } // 提交表單成功后重新給屬性賦值 submit () { //......調(diào)用成功 let self = this let query = self.resetForm() self.updateForm({ //此方法是自定義的vuex的action方法,大家可根據(jù)實(shí)際應(yīng)用場景定義重置表單方法 form: query )} self.$ref['form'].resetFields() // 此時再調(diào)用resetFields()方法是為了清除表單驗(yàn)證而出現(xiàn)的錯誤 }
在對屬性進(jìn)行重置后執(zhí)行resetFields方法,是因?yàn)閷傩灾刂脼榭諘r,可能會觸發(fā)表單規(guī)則的驗(yàn)證,此時執(zhí)行resetFields會移除校驗(yàn)結(jié)果
補(bǔ)充知識:vue+element-ui this.$refs[‘‘].resetFields() 重置表單數(shù)據(jù)不生效問題
element 的 Form 組件提供了表單驗(yàn)證的功能,需要通過 rules 屬性傳入約定的驗(yàn)證規(guī)則,并將 Form-Item 的 prop 屬性設(shè)置為需校驗(yàn)的字段名。
有兩點(diǎn)需要注意:
1.要有對應(yīng)的 ref,且名字一致,表明重置哪個表單。
2.prop 設(shè)置的字段名要和 v-model 綁定的字段名一致,否則重置表單或進(jìn)行自定義校驗(yàn)規(guī)則時不會生效。
僅使用重置功能時具體校驗(yàn)規(guī)則不必填,但要重置的字段一定要有對應(yīng)的 prop。
以上這篇快速解決Vue、element-ui的resetFields()方法重置表單無效的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中實(shí)現(xiàn)表單地區(qū)選擇與級聯(lián)聯(lián)動示例詳解
這篇文章主要為大家介紹了Vue中實(shí)現(xiàn)表單地區(qū)選擇與級聯(lián)聯(lián)動示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09vue實(shí)現(xiàn)消息的無縫滾動效果的示例代碼
本篇文章主要介紹了vue實(shí)現(xiàn)消息的無縫滾動效果的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12前端使用vue實(shí)現(xiàn)token無感刷新的三種方案解析
這篇文章主要為大家介紹了前端使用vue實(shí)現(xiàn)token無感刷新的三種方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06vue 封裝導(dǎo)出Excel數(shù)據(jù)的公共函數(shù)的方法
本文主要介紹了vue 封裝導(dǎo)出Excel數(shù)據(jù)的公共函數(shù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Vue + Node.js + MongoDB圖片上傳組件實(shí)現(xiàn)圖片預(yù)覽和刪除功能詳解
這篇文章主要介紹了Vue + Node.js + MongoDB圖片上傳組件實(shí)現(xiàn)圖片預(yù)覽和刪除功能,結(jié)合實(shí)例形式詳細(xì)分析了Vue + Node.js + MongoDB基于圖片上傳組件實(shí)現(xiàn)圖片預(yù)覽和刪除功能相關(guān)操作技巧,需要的朋友可以參考下2020-04-04