试图在ckeditor上调用keyup函数

use*_*469 6 jquery ckeditor keyup

我有一个已被ckeditor取代的文本区域.我有一些jquery来收听textarea输入:

$('.formanswer').keyup(function () {
        LimitText($(this), $(this).attr('data-maxlength'));
});
Run Code Online (Sandbox Code Playgroud)

限制文本方法只限制文本输入.

所以现在文本区域标签看起来像这样:

<textarea class="formanswer" rows="10" cols="2" id="response_<%: animal.AnimalId.ToString() %>" name="animalresponse" data-maxlength="<%: animal.AnimalMaxLength.ToString() %>"><%: animal.AnimalResponse %></textarea>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用ckeditor做同样的事情......我看过文档:http://docs.ckeditor.com/#!/ guide/dev_jquery

我尝试了一些不同的东西,在编辑器实例上有这个事件,但它没有用...我使用的是javascript实现,而不是asp网络实现.

Tit*_*nis 6

实际上这只适用于ckeditor 4,其中editor是textarea的id:

CKEDITOR.instances.editor.on('key', function(e) {
    var self = this;

    setTimeout(function() {
        console.log(self.getData());
    }, 10);
});
Run Code Online (Sandbox Code Playgroud)

getData返回当前输入的值.延迟,因为否则最后一个值将丢失.


use*_*469 4

鉴于 CKEditor 的名称是:编辑器,解决方案是:

var e = CKEditor.instances['editor']

e.on( 'keyup', function( event ) {
    alert( e.getData() );
});
Run Code Online (Sandbox Code Playgroud)

在这个特定的解决方案中,我只是提醒编辑器的内容。

  • 'keyup' 事件不会在内联编辑器中触发,但 'key' 会触发 (5认同)