el-form组件使用resetFields重置失效的问题解决
el-form组件使用resetFields重置失效问题解决,有效避坑
1. 问题
用el-form写了包含三个字段的表单,使用resetFields方法进行重置,发现点击重置或要清空校验时是失效的。
代码:
<template> <div> <el-form :inline="true" size="mini" style="float: right" :model="queryParams.args" ref="queryForm"> <el-form-item label="姓名"> <el-input style="width:160px" size="mini" placeholder="" v-model.trim="queryParams.args.name" clearable ></el-input> </el-form-item> <el-form-item label="账号"> <el-input style="width:160px" size="mini" placeholder="" v-model.trim="queryParams.args.no" clearable ></el-input> </el-form-item> <el-form-item label="性别"> <el-select v-model="queryParams.args.sex" placeholder="请选择" clearable> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click.native="search" size="mini">查询</el-button> <el-button type="primary" @click.native="addUseroperator" size="mini">新增</el-button> <el-button type="success" @click.native="reset" size="mini">重置</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data() { return { queryParams: { args:{ name: "", no: "", sex: null } }, options: [ {value: 0, label: '女'}, {value: 1, label: '男'} ] } }, methods: { reset(){ this.$refs["queryForm"].resetFields() }, } } </script>
点击重置按钮后,仍不能清空重置该表单:
刚开始以为是异步问题,在重置方法代码上加上方法this.$nextTick(()=>{}):
methods: { reset(){ this.$nextTick(()=>{ this.$refs["queryForm"].resetFields() }) }, }
测试后仍然没有效果,只能下一步解决:
2. 解决
仔细检查代码后,可以发现el-form-item没有添加prop属性,导致识别不到相应的字段属性,注意这里有个坑:就是el-form这里要加上“:model”字段,我这里是加“:model=“queryParams.args”,如果不加,resetFields也会同样失效。加上后的代码如下:
<template> <div> <el-form :inline="true" size="mini" style="float: right" :model="queryParams.args" ref="queryForm"> <el-form-item label="姓名" prop="name"> <el-input style="width:160px" size="mini" placeholder="" v-model.trim="queryParams.args.name" clearable ></el-input> </el-form-item> <el-form-item label="账号" prop="no"> <el-input style="width:160px" size="mini" placeholder="" v-model.trim="queryParams.args.no" clearable ></el-input> </el-form-item> <el-form-item label="性别" prop="sex"> <el-select v-model="queryParams.args.sex" placeholder="请选择" clearable> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click.native="search" size="mini">查询</el-button> <el-button type="primary" @click.native="addUseroperator" size="mini">新增</el-button> <el-button type="success" @click.native="reset" size="mini">重置</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data() { return { queryParams: { args:{ name: "", no: "", sex: null } }, options: [ {value: 0, label: '女'}, {value: 1, label: '男'} ] } }, methods: { reset(){ this.$refs["queryForm"].resetFields() }, } } </script>
点击重置按钮测试后,确实有效了,问题解决。
以上就是el-form组件使用resetFields重置失效的问题解决的详细内容,更多关于el-form使用resetFields重置失效的资料请关注脚本之家其它相关文章!
相关文章
vue3中使用vuedraggable实现拖拽el-tree数据分组功能
这篇文章主要介绍了vue3中使用vuedraggable实现拖拽el-tree数据分组功能,可以实现单个拖拽、双击添加、按住ctrl键实现多个添加,或者按住shift键实现范围添加,添加到框中的数据,还能拖拽排序,需要的朋友可以参考下2024-02-02Vue3+TS项目中eslint、prettier安装配置详细指南
为了更好的统一项目的代码风格,因此在编写时就可以使用eslint+prettier,它们不仅能方便代码编写,还能避免不必要的错误,让代码变得更加严谨,这篇文章主要给大家介绍了关于Vue3+TS项目中eslint、prettier安装配置的相关资料,需要的朋友可以参考下2024-07-07
最新评论