我有一个表单设置为使用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();
但是没有工作。
答案 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