【问题标题】:Trying to call the keyup function on ckeditor试图在ckeditor上调用keyup函数
【发布时间】:2014-02-28 14:14:16
【问题描述】:

我有一个已被 ckeditor 替换的文本区域。我有一些 jquery 来收听 textarea 输入:

$('.formanswer').keyup(function () {
        LimitText($(this), $(this).attr('data-maxlength'));
});

limit text 方法只是限制文本输入。

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

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

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

我尝试了一些不同的方法来在编辑器实例上设置该事件,但没有成功...我使用的是 javascript 实现,而不是 asp 网络。

【问题讨论】:

标签: jquery ckeditor keyup


【解决方案1】:

这肯定适用于 Ck Editor 4.x 及更高版本

  CKEDITOR.on('instanceCreated', function (e) {
    e.editor.on('change', function (event) {
 var value = CKEDITOR.instances['TestArea_id'].getData();//Value of Editor
});
});

【讨论】:

    【解决方案2】:

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

    CKEDITOR.instances.editor.on('key', function(e) {
        var self = this;
    
        setTimeout(function() {
            console.log(self.getData());
        }, 10);
    });
    

    getData 返回当前输入的值。延迟,否则会丢失最后一个值。

    【讨论】:

      【解决方案3】:

      给定 CKEditor 的名称是:editor 解决办法是:

      var e = CKEditor.instances['editor']
      
      e.on( 'keyup', function( event ) {
          alert( e.getData() );
      });
      

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

      【讨论】:

      • 'keyup' 事件不会在内联编辑器中触发,但 'key' 会
      猜你喜欢
      • 2021-12-20
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      相关资源
      最近更新 更多