vue+element-ui通过弹窗打开表单,上一次打开的空验证没有清除
解决办法
通过点开弹窗时候,给表单进行重置即可tthis.$refs.xxx.resetFields()
注意,需要在setTimeout里面添加,因为弹窗打开时候,表单可能还没有加载
同时需要注意的是,form中要进行:model绑定,该绑定数据和input的v-model相同才行
详细按下面代码(el-form的:model与el-input的v-model是一致的,为同一个数据
// html代码
<el-dialog title="新建资料" :visible.sync="showCreateNewItem">
<el-form ref="CreateNewItem" :model="form" :rules='createNewItemRules'>
<el-form-item prop="name" label="名称" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelCreateNewItem">取 消</el-button>
<el-button type="primary" @click="confirmCreateNewItem">确 定</el-button>
</div>
</el-dialog>
// 点击新建子项
createNewItem() {
this.showCreateNewItem = true
setTimeout(()=> {
this.$refs.CreateNewItem.resetFields()
},100)},