jQuery ajaxForm和CKEditor没有保存它应该

时间:2012-03-06 21:56:47

标签: jquery ckeditor ajaxform

你好,对不起,这是一个非常庞大的系统的一部分,如果我错过了一些东西,我就不会把它全部搞定,请问我,

我正在使用jQuerys ajaxForm http://jquery.malsup.com/form/ 和CKEditor http://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中的内容更新textarea有任何人有这个问题,并知道如何解决它?

1 个答案:

答案 0 :(得分:1)

您用来调用this的{​​{1}}是一个DOM节点而不是ckeditor对象。

在您提供的适配器链接上,它显示了如何从docs:

获取对编辑器实例的访问权限
updateElement()

尝试将 var editor = $('.jquery_ckeditor').ckeditorGet(); 更改为:

this.updateElement()

现在你应该在编辑器实例上调用更新