views:

340

answers:

2

I am using CKEditor, jQuery and jQuery form plugin and I would like to submit contents of the CkEditor form via an Ajax query. Here is my code:

<form id="article-form" name="article-form" method="post" action="/myproject/save">
  <textarea name="bodyText" style="visibility: hidden; display: none;"></textarea>
  <script type="text/javascript">
    CKEDITOR.replace('bodyText');
  </script>

  <a onClick="$("#article-form").ajaxSubmit();">Submit</a>

</form>

Unfortunately, it seems that the Ajax request does not pass the bodyText parameter;

What did I do wrong or how can I achieve what I need?

Thank you.

+3  A: 

you need to first call the following, to make the CKEDITORs update their related fields..

for ( instance in CKEDITOR.instances )
    CKEDITOR.instances[instance].updateElement();

so

HTML

<a onClick="CKupdate();$("#article-form").ajaxSubmit();">Submit</a>

and javascript

function CKupdate(){
    for ( instance in CKEDITOR.instances )
        CKEDITOR.instances[instance].updateElement();
}
Gaby
Thank you. Where do I need to place this call : before CKEDITOR.replace or before ajaxSubmit() ?
fabien7474
@fabien, updated answer
Gaby
Ok. It works when placed before ajaxSubmit(). Thank you very much
fabien7474
@fabien, i believe your `CKEDITOR.replace` should have as parameter the name of the `textarea` and not the ID of the `form` .. so it should be `CKEDITOR.replace('bodyText')`
Gaby
@Gaby. Yes. You are right. I have updated the question
fabien7474
A: 

Post test...

...

teste