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);
        }
    })
});