ElementPlus表单验证报错 formEl.validate is not a function

出现问题的代码

javascript 复制代码
  <!-- 密码重置弹框 -->
            <el-dialog v-model="innerVisible" width="500" title="密码重置" append-to-body>
                <el-form ref="ruleFormRef" style="max-width: 600px" :model="passForm" status-icon :rules="rules"
                    label-width="auto" class="demo-ruleForm">
                    <el-form-item label="密码" prop="password">
                        <el-input v-model="passForm.password" type="password" autocomplete="off" />
                    </el-form-item>
                    <el-form-item label="确认密码" prop="checkPass">
                        <el-input v-model="passForm.checkPass" type="password" autocomplete="off" />
                    </el-form-item>
                </el-form>
                <template #footer>
                    <div class="dialog-footer">
                        <el-button @click="innerVisible = false">取消</el-button>
                        <el-button type="primary" @click="resetPass">
                            提交
                        </el-button>
                    </div>
                </template>
            </el-dialog>
javascript 复制代码
// 密码重置
const resetPass = (formEl: FormInstance | undefined) => {
    if (!formEl) return
    formEl.validate((valid) => {
        if (valid) {
            passForm.id = user.value.id
            saveOrUpdate(passForm)
                .then((res: any) => {
                    if (res.code === 200) {
                        innerVisible.value = false;
                        ElMessage.success('提交成功!');
                        // 刷新一下用户信息
                        getUserData()
                    }
                }).catch((error) => {
                    ElMessage.error(error.message)
                });

        } else {
            console.log('error submit!')
        }
    })
}

发现点击提交时,进行校验逻辑时报错,原因是提交表单的按钮那里没有给方法传ruleFormRef:

正确写法

javascript 复制代码
     <el-button type="primary" @click="resetPass(ruleFormRef)">提交</el-button>
相关推荐
2分钟速写快排4 小时前
孔乙己的茴字有多少种写法?|AI 对话实时通信的三种实现
前端·javascript·github
梯度下降者6 小时前
Nuxt框架
vue.js·服务端渲染·全栈开发·混合渲染·nuxt框架
用户00447295382511 小时前
练歌镜:让眼镜听懂“循环这一句”
javascript
yuyuxun114 小时前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
总要学点什么17 小时前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
Agent世界18 小时前
用 CDP 做发布自动化:四道机器闸门与产物验收
前端·javascript
FungLeo18 小时前
成为全栈·Vue 管理后台篇·编辑器图片上传:从文件选择到文章附件关联
前端·vue.js·编辑器·markdown·文件上传·formdata·附件管理
总要学点什么19 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
程序员大阳19 小时前
副队长ES6+教程(3)--解构赋值
前端·javascript·es6·赋值·解构
神膘护体小月半19 小时前
css - 元素背景图由 hover 触发,初次加载时闪动的解决办法
前端·javascript·css