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,可以避免验证流程卡住的问题。

浙公网安备 33010602011771号