el-form自定义校验规则校验通过停住不动

在使用 el-form 的自定义校验规则时,如果校验通过后表单“停住不动”,通常是因为在自定义校验函数中没有正确调用 callback 函数。、、、 中都强调了这一点:‌无论校验成功或失败,都必须调用 callback‌,否则 validate 方法会一直等待回调,导致表单验证流程停滞。

常见问题示例
const customValidator = (rule, value, callback) => {
if (value.length > 10) {
callback(new Error('超出长度'));
}
// 忘记调用 callback(),导致验证卡住
};

正确写法
const customValidator = (rule, value, callback) => {
if (value.length > 10) {
callback(new Error('超出长度'));
} else {
callback(); // 必须调用 callback() 来结束验证
}
};

说明
当校验通过时,应调用 callback();
当校验失败时,调用 callback(new Error('错误信息'));
如果未调用 callback,validate 方法将不会继续执行,表单验证会卡住。

确保所有分支(包括通过和失败)都调用了 callback,可以避免验证流程卡住的问题。

posted @ 2026-01-19 17:39  陆远0913  阅读(0)  评论(0)    收藏  举报