使用ajax save时,ckeditor无法发布结果

时间:2015-03-15 21:26:37

标签: javascript php jquery html ajax

我有一个表单设置为使用ajax进行动态保存。它适用于标准文本区域,但在使用ckeditor类启用ckeditor后它没有响应。表格如下:

<div class="form-group">
  <div class="float auto clear">
    <textarea class="ckeditor saveData" name="introtext" itemid="<?php echo $id; ?>" id="editor1" ><?php echo "$introtext"; ?></textarea>
  </div>
</div>

ckeditor是ckeditor用来加载编辑器的类。 saveData是我用来启动javascript函数来保存textarea数据的类。 javascript:

// ckeditor textarea
$(document).on('keyup','.saveData',function()
{
  var DATA = CKEDITOR.instances.editor1.getData();
  var cleaned=remove_whitespaces(DATA);
  var ID=$(this).attr('itemid');
  if(cleaned !=''){
    var dataString = 'introtext='+ cleaned  +'&id='+ ID;
    $.ajax({
      type: "POST",
      url: "save.php",
      data: dataString,
      cache: false
    });
  }
})
// END SAVE BASE


// ordinary textarea
$(document).on('keyup','.saveData2',function()
{
  var DATA=$(this).val();
  var cleaned=remove_whitespaces(DATA);
  var ID=$(this).attr('itemid');
  if(cleaned !=''){
      var dataString = 'introtext2='+ cleaned  +'&id='+ ID;
    $.ajax({
      type: "POST",
      url: "save.php",
      data: dataString,
      cache: false
    });
  }
})

您可以在www.dottedi.us/ckeditor上看到该表格。我尝试过使用两者:

var DATA=$(this).val();

var DATA = CKEDITOR.instances.editor1.getData();
但是没有工作。

1 个答案:

答案 0 :(得分:2)

尝试使用以下 -

<div class="form-group">
  <div class="float auto clear">
    <textarea class="ckeditor saveData" name="introtext" itemid="<?php echo $id; ?>" id="editor1" ><?php echo "$introtext"; ?></textarea>
  </div>
</div>

// ckeditor textarea
var editor = CKEDITOR.replace('editor1');
editor.on('change', function()
{
  var DATA = this.getData();
  var cleaned=remove_whitespaces(DATA);
  var ID=$('#editor1').attr('itemid');
  if(cleaned !=''){
    var dataString = 'introtext='+ cleaned  +'&id='+ ID;
    $.ajax({
      type: "POST",
      url: "save.php",
      data: dataString,
      cache: false
    });
  }
})
// END SAVE BASE