-1

我想将 ckeditor 中的数据立即存储到使用 ajax 的文件中。我正在使用 cakephp,我的视图文件中有以下代码来测试 ckeditor 是否成功绑定到 js 事件。

    <?php
echo $this->Html->script('ckeditor/ckeditor');
echo $this->Form->create('Post', array('action' => 'edit'));
echo $this->Form->input('title',array('id'=>'posttitle'));
echo $this->Form->input('id', array('value'=>$originalid,'type' => 'hidden'));
echo $this->Form->input('username', array('value'=>$creator,'type' => 'hidden'));
echo $this->Form->textarea('body',array('class'=>'ckeditor','id'=>'postbody'));
echo $this->Form->end('Done Editing');

$this->Js->get('#postbody');
echo $this->Js->event('click','alert("hi")');
    ?>

问题是当我将它与标题输入绑定时代码工作正常,但它不适用于包含ckeditor的textarea。

4

1 回答 1

0

我有点困惑,部分原因是 CakePHP JS 的东西。您想通过 keyup 事件实现什么目标?您想在发生任何更改时始终保存,还是想在每次编辑器更改时更新 textarea 内容或...?在我看来,有比这更好的方法来做这两种方法,但做什么很大程度上取决于你想要实现的目标(一些更改可能在没有 keyup 事件的情况下发生,例如考虑 undo/redo/bold/add 表)。

在 CKE 中,您不会将事件附加到底层元素,而是它有自己的事件模型,非常方便。在原生 JS 中,您会像这样收听关键事件:

editor.on('key', function(e)
{
    console.log("Ponies");
});

会有editor你的 ckeditor 实例。点击事件非常相似。

于 2012-12-09T16:34:55.783 回答