ckeditor没有加载通过ajax调用生成的元素?

时间:2014-05-20 10:33:15

标签: javascript php jquery html ajax

我正在使用自定义表单并使用ajax调用生成表单元素,但textarea未加载ckeditor。这是我的代码:

ajax代码:

    jQuery.ajax({
    type: "POST",
    url: "reg_arz_ajax2.php",
    data: "book="+book_arzyabi,
    dataType : "html",
    success: function(response){

        $('#resp').html(response);
    },
    error:function (xhr, ajaxOptions, thrownError){
        //On error, we alert user
        alert(thrownError);
    }
});

$( "#dialog-form" ).dialog( "open");

});

ajax的回应是:

   '<textarea class="ckeditor" cols="80" id="fname" name="fname" rows="10" >test</textarea>';

html代码:

  <html>
 <head>
 <script type="text/javascript" src="../include/ckeditor/ckeditor.js"></script>
 <script type="text/javascript" src="../include/ckeditor/sample.js" ></script>
 </head>

 <body>
 <form>
 <fieldset>
 <label for="name">Name</label>
 <div id="resp" ></div>
 </fieldset>
 </form>
 </body>
 </html>

请帮我解决问题。

4 个答案:

答案 0 :(得分:1)

插入以下行:

ckeditor.replace('#fname'); // ADD THIS
$('#fname').ckeditor(); // ADD THIS

您的代码应如下所示:

jQuery.ajax({
type: "POST",
url: "reg_arz_ajax2.php",
data: "book="+book_arzyabi,
dataType : "html",
success: function(response){

    $('#resp').html(response);
    ckeditor.replace('#fname'); // ADD THIS
    $('#fname').ckeditor(); // ADD THIS
},
error:function (xhr, ajaxOptions, thrownError){
    //On error, we alert user
    alert(thrownError);
}
});

$( "#dialog-form" ).dialog( "open");

});

答案 1 :(得分:0)

对我来说只有这条线有效:

ckeditor.replace('#fname');

并且需要删除以下行:

$('#fname').ckeditor(); // this does NOT work

另请注意,ckeditor需要加盖,因此:

CKEDITOR.replace('#fname');

答案 2 :(得分:0)

仅添加CKEDITOR.replace('fname');不是必需的。此外,您不必添加:

$('#fname').ckeditor();

确保它始终是大写的,例如CKEDITOR not ckeditor

答案 3 :(得分:0)

不要添加ckeditor.replace('#fname'); 您必须添加$('#fname')。ckeditor(); 在我的项目中就是作品