2012-11-20 7 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 함수를 사용하여 텍스트 영역의 값을 설정하려고하면 (here (ckeditor's jquery guide)과 같이) 값이 설정되지 않습니다.

아이디어가 있으십니까? 감사! :)

+1

어디로 제출 하시겠습니까? 아약스를 통해 제출하지 않으면 페이지가 새로 고쳐질 가능성이 있습니다 ... 브라우저 기본 제출 프로세스 – charlietfl

+0

(제 질문과 관련이 없다고 생각하는) 제출 기능을 제거하더라도 동일한 문제가 발생합니다. – mrjayviper

+0

'save'가 폼에있는 버튼이라면,'submit'은 브라우저 기본값이 이미하고 있지 않은 것을 아무것도하지 않고 페이지 새로 고침을 유발할 것입니다. 그것이 상쾌하게하지 않고 있는지보십시오. 이걸 피하기 위해 아약스를 사용해야합니다 – charlietfl

답변

2

CKEditor는 textarea에서는 작동하지 않지만 iframe 내의 합성 contenteditable 가능 HTML 페이지에서는 작동하지 않습니다. 당신은 편집기의이 방법으로 새로운 내용을 설정할 수 있습니다

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

당신이 정말 그 텍스트 영역으로 편집기를 동기화 할 경우 이것은 또한 당신이 호출 할 때 자동으로 발생

CKEDITOR.instances.yourInstanceName.updateElement(); 

:

CKEDITOR.instances.yourInstanceName.destroy() 

CKEDITOR.instances 개체를 탐색하거나 textarea의 id/name (편집자 작성 방법에 따라 다름)을 읽음으로써 yourInstanceName을 찾을 수 있습니다.

해피 코딩! ;)

관련 문제