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>
相关推荐
dsyyyyy11012 小时前
JavaScript变量
开发语言·javascript·ecmascript
kyriewen2 小时前
手写 Promise.all、race、any:不到 30 行代码,解决并发异步的所有姿势
前端·javascript·面试
胡志辉的博客4 小时前
深入浅出理解浏览器事件循环:从一道输出题讲到 Chrome 源码
前端·javascript·chrome·chromium·event loop
代码不加糖4 小时前
js中不会冒泡的事件有哪些?
前端·javascript·vue.js
懂懂tty4 小时前
Vue2与Vue3之间API差异
前端·javascript·vue.js
老毛肚5 小时前
软件测试期末考试
vue.js
小二·5 小时前
Next.js 15 全栈开发实战
开发语言·javascript·ecmascript
杨若瑜6 小时前
本地开发环境慢?localhost的锅!
vue.js
Rain5096 小时前
2.1 Nest.js 项目初始化与模块化架构
开发语言·前端·javascript·后端·架构·数据分析·node.js
拾年2757 小时前
从零手写 Ajax:用原生 XHR 搭建前后端交互全流程
前端·javascript·ajax