2012-11-20 66 views
1

我在newedit.js文件中有以下腳本。使用jquery設置ckeditor實例值

$(document).ready(function() { 
    $("[id^=save]").click(function() { 
     $("#scholarship-short_desc").val("test"); 
     alert($("#scholarship-short_desc").val()); 
     $("form").submit(); 
    }); 

    $("#scholarship-short_desc").ckeditor(); 
}); 

我在我的html文件中也有以下條目。我正在使用ckeditor 3.6.5。

<script src="/myapp/javascripts/ckeditor/ckeditor.js" type="text/javascript"></script> 
<script src="/myapp/javascripts/ckeditor/adapters/jquery.js" type="text/javascript"></script> 
<script src="/myapp/javascripts/scholarships/newedit.js" type="text/javascript"></script> 

這會在我的頁面中正確顯示ckeditor。但是當我嘗試使用val函數設置textarea的值(如here (ckeditor's jquery guide)所述)時,該值未被設置。

任何想法?謝謝! :)

+1

表單提交到哪裏?除非通過ajax提交,否則頁面可能正在刷新......即使我刪除提交功能(我認爲與我的問題沒有關係),瀏覽器默認提交過程 – charlietfl

+0

,我也遇到同樣的問題。 – mrjayviper

+0

如果'save'是一個表單中的按鈕,'submit'不會做任何瀏覽器默認的操作,並且會導致頁面刷新。看看它是否沒有刷新。你必須使用阿賈克斯來避免這個 – charlietfl

回答

2

CKEditor不在您的textarea上運行,而是在iframe中啓用合成contenteditable的html頁面上運行。您可以設置編輯器的新內容是這樣的:

CKEDITOR.instances.yourInstanceName.setData('<h1>Your HTML</h1>'); 

如果你真的想你的編輯器,它的textarea的同步:

CKEDITOR.instances.yourInstanceName.updateElement(); 

這也時會自動調用:

CKEDITOR.instances.yourInstanceName.destroy() 

通過瀏覽CKEDITOR.instances對象或通過閱讀textarea的id/name(取決於您如何創建編輯器),您會發現yourInstanceName

快樂編碼! ;)