欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

快速解決Vue、element-ui的resetFields()方法重置表單無效的問題

 更新時間:2020年08月12日 14:48:16   作者:只想做個好人啊  
這篇文章主要介紹了快速解決Vue、element-ui的resetFields()方法重置表單無效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題:

使用this.$ref['form'] .resetFields()無法重置表單項

原因:

1.沒有給表單添加ref屬性

<el-form ref="form"></el-form>

2.表單項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ù)用,此時上述屬性跟方法都添加了也無法達到清除表單的效果。

此時我們再重新看一下element-ui的官方文檔

方法名 說明
resetField 對該表單項進行重置,將其值重置為初始值并移除校驗結(jié)果
clearValidate 移除該表單項的校驗結(jié)果

重點:resetField()方法不是將表單重置為空,而是重置為初始值

所以當(dāng)我們打開新建表單的時候,表單項綁定的屬性值為空,在提交表單后,表單項綁定的值不為空,此時再打開新建表單是會有上一次的值出現(xiàn),此時resetField()方法是無法清空表單的,因為在這次操作的時候,屬性初始值就不為空。

解決方法:

在提交表單成功后對綁定的值進行方法重置

//  重置表單項屬性
resetForm () {
  return {
    remark: '',
    name: ''
  }
}
 
//  提交表單成功后重新給屬性賦值
submit () {
  //......調(diào)用成功
  let self = this
  let query = self.resetForm()
  self.updateForm({ //此方法是自定義的vuex的action方法,大家可根據(jù)實際應(yīng)用場景定義重置表單方法
    form: query
  )}
  self.$ref['form'].resetFields()  // 此時再調(diào)用resetFields()方法是為了清除表單驗證而出現(xiàn)的錯誤
}

在對屬性進行重置后執(zhí)行resetFields方法,是因為對屬性重置為空時,可能會觸發(fā)表單規(guī)則的驗證,此時執(zhí)行resetFields會移除校驗結(jié)果

補充知識:vue+element-ui this.$refs[‘‘].resetFields() 重置表單數(shù)據(jù)不生效問題

element 的 Form 組件提供了表單驗證的功能,需要通過 rules 屬性傳入約定的驗證規(guī)則,并將 Form-Item 的 prop 屬性設(shè)置為需校驗的字段名。

有兩點需要注意:

1.要有對應(yīng)的 ref,且名字一致,表明重置哪個表單。

2.prop 設(shè)置的字段名要和 v-model 綁定的字段名一致,否則重置表單或進行自定義校驗規(guī)則時不會生效。

僅使用重置功能時具體校驗規(guī)則不必填,但要重置的字段一定要有對應(yīng)的 prop。

以上這篇快速解決Vue、element-ui的resetFields()方法重置表單無效的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論