我想使用ajax将ckeditor中的数据立即存储到文件中。我正在使用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。
答案 0 :(得分:0)
我有点困惑,部分原因是CakePHP JS的东西。你想通过keyup事件实现什么目标?您是否希望在发生任何更改时始终保存,或者您是否希望每次编辑器更改时更新textarea内容或...?在我看来,有更好的方法可以做到这两点,但是做什么取决于你想要实现的目标(如果没有键盘事件,可能会发生一些变化,例如,想想undo / redo / bold / add table)。
在CKE中,您不会将事件附加到底层元素,而是拥有它自己的事件模型非常方便。在原生JS中,你会像这样听取关键事件:
editor.on('key', function(e)
{
console.log("Ponies");
});
editor
将成为你的ckeditor实例。这与点击事件非常相似。