【问题标题】:CKEditor 'save' is different than submitCKEditor 'save' 与 submit 不同
【发布时间】:2017-04-06 01:25:52
【问题描述】:

我用这个,如果你按 ctrl+enter 来提交表单:

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

不幸的是,这似乎与按下提交按钮有点不同。

如果我按 ctrl+enter,我会弹出一个警告,警告说表单中的数据已更改,并且该数据会丢失。如果我选择“离开页面”,那么一切正常(不会丢失数据)。

如何让 ctrl+enter 像按下提交按钮一样工作?

【问题讨论】:

  • 您有单独的提交按钮还是您的表单只有 ckeditor 字段?我可以尝试为您提供一些说明,以找出在您的页面上注册的确切事件处理程序,使其显示弹出消息。您是否安装了 Firefox 或 Chrome?

标签: javascript ckeditor jquery-events


【解决方案1】:

您保存表单时似乎触发了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');
    });
}

【讨论】:

  • 这有效:window.onbeforeunload = null;。这对我帮助很大。我开始了额外的赏金来奖励你的回答。
【解决方案2】:

您是否尝试将“保存”替换为“提交”。

CKEditor 有一个缓存,可以保存您输入的内容,因此当您失去连接等时,您的内容不会消失。

【讨论】:

  • 我将“保存”替换为“提交”,但现在没有任何反应。是否有关于允许值列表的文档?
猜你喜欢
  • 2012-03-07
  • 2014-01-17
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
相关资源
最近更新 更多