16。编辑器:字段仍在处理中
如果尝试在整个表单的字段处于处理状态时提交表单,编辑器不会提交该表单。这是为了允许处理完成并确保数据完整性。
错误
字段仍在处理中
当尝试提交表单时,如果表单或表单中的字段处于处理状态,将会发生此错误。
含义
如果编辑器检测到某个字段处于“处理”状态(field().processing()
),这表明表单中仍有数据需要更新(可能来自 Ajax 计算),因此不应提交表单。编辑器会取消提交并等待处理完成。
解决方案
此问题最常见的原因是使用 dependent()
并忘记返回编辑器要处理的对象或不使用其回调函数。例如
editor.dependent('myField', function () {
editor.field('otherField').val(1);
});
将永远不会完成。应改为
editor.dependent('myField', function () {
editor.field('otherField').val(1);
return {};
});
或
editor.dependent('myField', function () {
return {
values: {
otherField: 1
}
};
});
同样,如果使用 Ajax 等异步行为,则需要调用回调函数以告知编辑器处理操作已完成
editor.dependent('myField', function(val, data, cb) {
$.ajax({
url: '/api/dependent',
data: data,
success: function (json) {
cb(json);
}
})
});