CKEditor «сохранить» отличается от отправки

Я использую это, чтобы отправить форму, если вы нажмете ctrl+enter:

$(function() {
    CKEDITOR.on('instanceReady', function(evt) {
        evt.editor.setKeystroke(CKEDITOR.CTRL + 13, 'save');
    })
})

К сожалению, это немного отличается от нажатия кнопки отправки.

Если я нажму ctrl+enter, я получу всплывающее окно с предупреждением о том, что в форме есть измененные данные, и что эти данные будут потеряны. Если выбираю "покинуть страницу", то все работает нормально (данные не теряются).

Как сделать так, чтобы ctrl+enter работал так же, как нажатие кнопки отправки?


person guettli    schedule 22.11.2016    source источник
comment
У вас есть отдельная кнопка отправки или в вашей форме есть только поле ckeditor? Я могу попытаться дать вам несколько инструкций, чтобы узнать точный обработчик события, который зарегистрирован на вашей странице, чтобы он отображал всплывающее сообщение. У вас установлен Firefox или Chrome?   -  person Wizard    schedule 22.11.2016


Ответы (2)


Похоже, что событие onbeforeunload запускается, когда вы сохранить форму.

Попробуйте это, чтобы переопределить событие сохранения и удалить обработчик события:

for (var i in CKEDITOR.instances) {
    CKEDITOR.instances[i].on('save', function(evt) {
        window.onbeforeunload = null;

        // if the above line doesn't work,
        // replace it with the next line removing the two slashes
        // $(window).off('beforeunload');
    });
}
person Wizard    schedule 23.11.2016
comment
Это работает: window.onbeforeunload = null;. Это мне очень помогло. Я начал дополнительную награду, чтобы вознаградить ваш ответ. - person guettli; 25.11.2016

Вы пробовали заменить «сохранить» на «отправить».

CKEditor имеет кеш, который сохраняет то, что вы набрали, поэтому, когда вы потеряете соединение и т. д., ваш контент не исчезнет.

person Jakob    schedule 22.11.2016
comment
Я заменил save на submit, но теперь ничего не происходит. Есть ли документы о списке допустимых значений? - person guettli; 22.11.2016