element Form 表单在 el-tab-pane 下<重置/清空>操作时报错怎么解决?

发布于 2022-09-11 15:40:00 字数 2462 浏览 14 评论 0

问题描述:
只在el-tab-pane下有这样的提示.如果把代码提到外层就不会报错了?请问这个问题应该怎么解决呢?

错误提示:

clipboard.png

本地代码:

                <el-tab-pane v-for="item in TabType" :label="item.name" :name="item.id" :key="item.id">
                <div v-show="true ? item.id == 1 || item.id == 2 || item.id == 3 : item.id == null">
                    {{item.name}}
                </div>
                <div v-show="true ? item.id == 4 : item.id = null">
                    <div class="fxn-search">
                        <el-form :inline="true" :model="SearchForm" :rules="SearchRules" ref="SearchForm">
                            <el-form-item label="状态" prop="bill_no">
                                <el-select v-model="SearchForm.status">
                                    <el-option v-for="item in AvoidsStatus" :name="item.name" :key="item.id" :label="item.name" :value="item.name"></el-option>
                                </el-select>
                            </el-form-item>
                            <el-button type="success">查询</el-button>
                            <el-button type="warning" @click="resetForm('SearchForm')">清空</el-button>
                        </el-form>
                    </div>
                </div>
            </el-tab-pane>
            
            
            <script>
export default {
    data(){
        return{
            activeName: '1',

            //Tab类型
            TabType: [
                {id: '1',name: 'A栏目'},
                {id: '2',name: 'B栏目'},
                {id: '3',name: 'C栏目'},
                {id: '4',name: 'D栏目'},
            ],

            //申请状态
            AvoidsStatus: [
                {id: 1,name: '未处理'},
                {id: 2,name: '同意'},
                {id: 3,name: '拒绝'}
            ],

            //筛选
            SearchForm: {},
            SearchRules: {},
        }
    },
    methods:{
        //Tab 切换
        handleClick(tab, event) {
            console.log(tab, event);
        },

        //清空筛选条件
        resetForm(formName) {
            this.$refs[formName].resetFields();
        }
    },
    mounted(){

    }
}
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一念一轮回 2022-09-18 15:40:00

clipboard.png

clipboard.png

以下为: //清空[其它]筛选条件reset 的打印结果

clipboard.png

羁〃客ぐ 2022-09-18 15:40:00
        <el-tab-pane v-for="item in TabType" :label="item.name" :name="item.id" :key="item.id">
        <div v-show="true ? item.id == 1 || item.id == 2 || item.id == 3 : item.id == null">
            {{item.name}}
        </div>
        <div v-show="true ? item.id == 4 : item.id = null">
            <div class="fxn-search">
                <el-form :inline="true" :model="SearchForm" :rules="SearchRules" :ref="`SearchForm${item.id}`">
                    <el-form-item label="状态" prop="bill_no">
                        <el-select v-model="SearchForm.status">
                            <el-option v-for="item in AvoidsStatus" :name="item.name" :key="item.id" :label="item.name" :value="item.name"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-button type="success">查询</el-button>
                    <el-button type="warning" @click="resetForm(`SearchForm${item.id}`)">清空</el-button>
                </el-form>
            </div>
        </div>
    </el-tab-pane>
            
            
    <script>
    export default {
        data(){
            return{
                activeName: '1',
    
                //Tab类型
                TabType: [
                    {id: '1',name: 'A栏目'},
                    {id: '2',name: 'B栏目'},
                    {id: '3',name: 'C栏目'},
                    {id: '4',name: 'D栏目'},
                ],
    
                //申请状态
                AvoidsStatus: [
                    {id: 1,name: '未处理'},
                    {id: 2,name: '同意'},
                    {id: 3,name: '拒绝'}
                ],
    
                //筛选
                SearchForm: {},
                SearchRules: {},
            }
        },
        methods:{
            //Tab 切换
            handleClick(tab, event) {
                console.log(tab, event);
            },
    
            //清空筛选条件
            resetForm(formName) {
                this.$refs[formName].resetFields();
            }
        },
        mounted(){
    
        }
    }
    </script>
   

因为你的有四个tab formref都一样了,上面是我对你代码的简单修改,你可以验证一下

谁把谁当真 2022-09-18 15:40:00

我这边拿你的代码运行没有什么问题,你点击清空的时候this.$refs[formName]这个打印出来是什么?

旧城烟雨 2022-09-18 15:40:00

你试试this.$refs[formName] 或 this.$refs.SearchForm 看下有没有获取到?

你的报错是this.$refs[formName].resetFields is not a function ,这种错一般就是前面的那个对象没获取到。
举个例子,如下图,获取到this.$refs.loginForm的情况是像我下图那种:
图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文