2015-02-07 70 views
3

我在应用程序中使用了CK编辑器。从CK编辑器textarea在JQuery中获取文本

<textarea name="contentDetails" id="contentDetails" rows="10" cols="80"></textarea> 

但我无法从该textarea检索文本。我试过了 -

var content= $("#contentDetails").text(); //and also .val() & .html() 

但是content变量仍为空。

有什么想法?

//UPDATE - add my codes below 
<script> 
CKEDITOR.replace('contentDetails'); 

$(function() { 
    $("#submitcontent").click(function (e) { 
     e.preventDefault(); 
     var content= $("#contentDetails").text();   
    }); 
}); 

</script> 
+0

尝试使用'.VAL()''没有的.text()' – Deryck 2015-02-07 08:07:36

+0

当你调用一个具有功能'content'变量? textarea被填充后? – sideroxylon 2015-02-07 08:07:44

+0

是在事件处理程序内部还是在代码中的某处定义的内容? – Deryck 2015-02-07 08:11:15

回答

6

试试这个:

var text = CKEDITOR.instances.contentDetails.getData(); 
+0

@ Irfan TahirKheli - 你救了我整整一天。 – 2015-02-07 08:51:41

+0

@SKPaul乐我所有。值得投票呢? – 2015-02-07 08:53:32

+0

它实际上是CKEDITOR.instances.contentDetails.getData()。请更新您的答案。 – 2015-02-09 11:25:55

-1

根据官方文档:CKEditor Dom Element

尝试

textarea = document.getElementById('contentDetails'); 
textareaNode = new CKEDITOR.dom.element(textarea); 
textareaNode.getValue(); 
+0

您的代码无法使用。我的代码已更新。请参见。 – 2015-02-07 08:22:22

+0

请更新您的答案并提供更多详细信息,以便对未来的读者有所帮助。 – Hemang 2015-02-07 09:17:34

0

CKEDITOR将与它自己的元素取代你的textarea的,这是在那里你将需要得到从HTML。如果你检查原始的textarea,你会发现它是空的,内容实际上是由编辑器生成的一堆html中的其他地方。尝试使用inspect元素来查找包含您可以使用的内容的元素的选择器。确保你的jQuery在编辑器初始化后执行。

2

官方CKEditor jQuery adapter guide解释:

// Get the editor data. 
var data = $('textarea.editor').val(); 
// Set the editor data. 
$('textarea.editor').val('My new content');