你好,很抱歉这是一个非常大的系统的一部分,我不会把它全部放进去。如果我错过了一些东西,请向我索取,
我正在使用jQuerys-ajaxFormhttp://jquery.malsup.com/form/和CKEditorhttp://ckeditor.com
根据CKeditor上的文档,jQuery适配器可以与ajaxForm一起使用http://ckeditor.com/blog/CKEditor_for_jQuery在"与编辑器实例的代码交互"部分的底部,
现在,我的所有内容都用AJAX加载到页面中,并且一个名为addonLoader的函数会随着数据的传递而启动,这是该函数中处理CKEditor 的部分
// check there are not any instance's of CKEditor running
$(".addonContent form textarea.editor").each(function(index, element) {
$(this).ckeditor(function(){ this.destroy(); });
});
// add the content to the output area
$(".addonContent").html(data);
// setup Ajax form values
AJAXFormOptions = {
success: addonLoader
};
// activate ajaxForm on any forms from the data shown
$(".addonContent form").ajaxForm(AJAXFormOptions);
// enable the content editor
$(".addonContent form textarea.editor").ckeditor({width:"800px"});
当我的表格由图像链接提交以激发此代码时
function submitForm(formID){
(function($){
$(".addonContent form textarea.editor").each(function(index, element) {
$(this).ckeditor(function(e){
this.updateElement();
});
});
$(formID).submit(function(){
// prevent the browser redirect
return false;
});
$(formID).submit();
})(jQuery)
}
我已经检查了formID是否正确,但由于某种原因,它仍然没有用放置在CKEditor中的内容更新文本区域。有人遇到过这个问题,知道如何解决吗?
用于调用updateElement()
的this
是DOM节点,而不是ckeditor对象。
在您提供的适配器链接上,它显示了如何从文档中访问编辑器实例,如下所示:
var editor = $('.jquery_ckeditor').ckeditorGet();
尝试将this.updateElement()
更改为:
$(this).ckeditorGet().updateElement()
现在您应该调用编辑器实例的更新