ElementUI組件Dialog彈窗再次打開(kāi)表單仍顯示上次數(shù)據(jù)的問(wèn)題
ElementUI組件Dialog彈窗再次打開(kāi)表單仍顯示上次數(shù)據(jù)
問(wèn)題描述:在使用vue+element開(kāi)發(fā)Dialog嵌套表單的時(shí)候,表單交數(shù)據(jù)關(guān)閉之后再次打開(kāi)表單沒(méi)有重置,仍顯示上次輸入的數(shù)據(jù)。
點(diǎn)擊新增,顯示彈窗

添加后,數(shù)據(jù)顯示在頁(yè)面中。當(dāng)再次點(diǎn)擊新增時(shí)出現(xiàn)以下界面:仍保留上次的數(shù)據(jù),而且若修改表單中數(shù)據(jù)頁(yè)面中的數(shù)據(jù)也會(huì)被修改。
根本原因是 form表單對(duì)象保留了上次的數(shù)據(jù),應(yīng)該將其置空。
重置方法
嵌套表單的彈窗的代碼:
<el-button type="text" @click="dialogFormVisible = true"
@open="resetForm">彈窗</el-button> //@open事件綁定打開(kāi)表格時(shí)重置
<el-dialog title="收貨地址" :visible.sync="dialogFormVisible">
<el-form :model="form" ref="form" :rules="rules">
<el-form-item prop="id" label="編號(hào)" :label-width="formLabelWidth">
<el-input v-model="form.id" autocomplete="off"></el-input>
</el-form-item>
<el-form-item prop="name" label="名稱(chēng)" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item prop="type" label="型號(hào)" :label-width="formLabelWidth">
<el-input v-model="form.type" autocomplete="off"></el-input>
</el-form-item>
<el-form-item prop="company" label="廠家" :label-width="formLabelWidth">
<el-input v-model="form.company" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogFormVisible = false">確 定</el-button>
</div>
</el-dialog>
<script>
export default {
form:{
id:'',
name:'',
type:'',
company:''
}
methods:{
resetForm(){
this.form={}; //重置表格對(duì)象
}
}
}
};
</script>將Dialog彈窗的打開(kāi)事件綁定方法,然后在方法中使用this.form={}進(jìn)行重置。
this.form={}這個(gè)的意思是把表單初始化為一個(gè)空對(duì)象,后期可以往這個(gè)對(duì)象里賦值。
關(guān)閉element UI的彈窗,再次打開(kāi)顯示表單驗(yàn)證提示
打開(kāi)彈窗,沒(méi)有填寫(xiě)任何信息,點(diǎn)擊保存按鈕,觸發(fā)了表單的驗(yàn)證提示,沒(méi)有進(jìn)行任何操作,點(diǎn)擊【關(guān)閉按鈕】或者【取消按鈕】關(guān)閉彈窗,再次打開(kāi)彈窗,仍然顯示表單的驗(yàn)證提示信息,

解決方法
給el-dialog添加@close事件,給取消按鈕添加點(diǎn)擊事件,在事件中對(duì)表單進(jìn)行重置操作,即可解決


重置表單
this.$refs.dialogForm.resetFields();

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用vue-router在Vue頁(yè)面之間傳遞數(shù)據(jù)的方法
這篇文章主要介紹了使用vue-router在Vue頁(yè)面之間傳遞數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
vue3基于script?setup語(yǔ)法$refs的使用
這篇文章主要介紹了vue3基于script?setup語(yǔ)法$refs的使用,<BR>?在用vue3開(kāi)發(fā)項(xiàng)目的時(shí)候,需要調(diào)用子組件的方法,于是想著用$refs來(lái)實(shí)現(xiàn),但是我是使用script?setup語(yǔ)法糖,原先vue2的語(yǔ)法已經(jīng)不適用了。下面我們一起進(jìn)入文章看詳細(xì)內(nèi)容吧</P><P>2021-12-12
基于Vue+Openlayer實(shí)現(xiàn)動(dòng)態(tài)加載geojson的方法
本文通過(guò)實(shí)例代碼給大家介紹基于Vue+Openlayer實(shí)現(xiàn)動(dòng)態(tài)加載geojson的方法,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09

