2016-11-22 5 views
0

я использую это, чтобы отправить форму, если вы нажмете Ctrl + Enter:CKEditor «сохранить» отличается представить

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

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

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

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

+0

У вас есть отдельная кнопка отправки или же ваша форма имеет только CKEditor поле? Я могу попытаться дать вам несколько инструкций, чтобы узнать, какой именно обработчик событий зарегистрирован на вашей странице, чтобы отобразить всплывающее сообщение. Вы установили Firefox или Chrome? – Wizard

ответ

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'); 
    }); 
} 
+0

Это работает: 'window.onbeforeunload = null;'. Это очень помогло мне. Я получил дополнительную награду, чтобы вознаградить ваш ответ. – guettli

+0

Рад помочь :-) – Wizard

0

Вы пытались заменить "save" на "submit".

У CKEditor есть кеш, который сохраняет все, что вы набрали, когда вы теряете соединение и т. Д. Ваш контент не исчезнет.

+0

Я заменил «save» на «submit», но теперь ничего не происходит. Есть ли какие-либо документы о списке допустимых значений? – guettli

 Смежные вопросы

  • Нет связанных вопросов^_^