admin管理员组

文章数量:1405905

I've started using CKEditor v3 few weeks ago.using it in a php project.i've been using it with jquery (using jquery adapter) and all this while using $.ajax (because can't handle for errors when using jquery form) to submit and i thought everything was alright .

So here pops up a case where i need to use normal form mechanism to submit the ckeditor content and all the other information of the form.
To my surprise the content was empty so i started google and apparently it's a known issue. i haven't seen any thing YET that could let me post my content to php side. so i've e up with a workaround.

I know onclick will always fire before the onsubmit so i've written this.

function returntoSubmit(){
    myForm = document.forms[0];
    myForm.elements["content"].value = $("#content").val();// note that the textarea name and id are all the same "content"

}

// html here 
 <input type="submit" value="Save" onclick="returntoSubmit()" />

that does the work for me.But truly and a little unfortable with this, isn't there any better method to solve this issue?

Thanks

I've started using CKEditor v3 few weeks ago.using it in a php project.i've been using it with jquery (using jquery adapter) and all this while using $.ajax (because can't handle for errors when using jquery form) to submit and i thought everything was alright .

So here pops up a case where i need to use normal form mechanism to submit the ckeditor content and all the other information of the form.
To my surprise the content was empty so i started google and apparently it's a known issue. i haven't seen any thing YET that could let me post my content to php side. so i've e up with a workaround.

I know onclick will always fire before the onsubmit so i've written this.

function returntoSubmit(){
    myForm = document.forms[0];
    myForm.elements["content"].value = $("#content").val();// note that the textarea name and id are all the same "content"

}

// html here 
 <input type="submit" value="Save" onclick="returntoSubmit()" />

that does the work for me.But truly and a little unfortable with this, isn't there any better method to solve this issue?

Thanks

Share Improve this question asked Dec 3, 2011 at 7:57 black senseiblack sensei 6,68624 gold badges113 silver badges192 bronze badges
Add a ment  | 

5 Answers 5

Reset to default 3

I'm running a large application with some nasty legacy code and needed something that worked across the whole app as non-intrusively as possible. In my case it wasn't feasible to listen for submits on each page individually, and even when I did I occasionally had race conditions where the submit still occurred before the click event code had a chance to do it's thing. The following seems to do the trick for me when ran after page load at a global scope:

for(var i in CKEDITOR.instances) {
  CKEDITOR.instances[i].on('blur', function() { this.updateElement(); });
}

May this help

CKEDITOR.instances[content].getData()

Just ran across this problem too... it seems that the best way to update all the textareas is:

for(var i in CKEDITOR.instances) CKEDITOR.instances[i].updateElement();

http://cksource./forums/viewtopic.php?f=11&t=15877

I have actually added my own twist that works nicely as I was having trouble today with the same issue.

I used your function call, but instead do this i give my textarea the ID of ckeditor:

function returnToSubmit() {
$('#ckeditor').val(CKEDITOR.instances['ckeditor'].getData();
}

I used this in a jquery ready event for all forms:

$('form').on('submit',function(){
  for(var i in CKEDITOR.instances) {
    CKEDITOR.instances[i].updateElement();
  }
});

Later I add another specific form submit event handler to do the actual custom submit logic for each form.

本文标签: javascriptCKEditor submitting empty content to the formStack Overflow