How to ajax-submit a form textarea input from CKEditor?

后端 未结 6 986
故里飘歌
故里飘歌 2020-11-28 04:13

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:

相关标签:
6条回答
  • 2020-11-28 04:40

    I tried something like this:

    First I had to put an id = "#myForm" on @Html.BeginForm afterwards, I put these in my scripts part where in I use the script:

    <script type="text/javascript">
        $(document).ready(function CKupdate() {
            $('#myForm').ajaxForm(function () {
                for (instance in CKEDITOR.instances) {
                    CKEDITOR.instances[instance].updateElement();
                }
            });       
        });
    </script>
    

    and then I did something like this =] for my submit button and it works fine for me, no more pressing the Submit twice =]

    <button type="submit" id="submitButton" onclick="CKupdate();$('#myForm').ajaxSubmit();">Submit</button>
    
    0 讨论(0)
  • 2020-11-28 04:41

    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();
    }
    
    0 讨论(0)
  • 2020-11-28 04:41

    If you use the jQuery form plugin, you can use the beforeSubmit option for a more elegant solution:

    $("#form").ajaxForm({
        beforeSubmit:  function()
    {
            /* Before submit */
        for ( instance in CKEDITOR.instances )
        {
            CKEDITOR.instances[instance].updateElement();
        }
    },
    
      // ... other options
    });
    
    0 讨论(0)
  • 2020-11-28 04:45

    I just did it like this:

    $('#MyTextArea').closest('form').submit(CKupdate);
    
            function CKupdate() {
                for (instance in CKEDITOR.instances)
                    CKEDITOR.instances[instance].updateElement();
                return true;
            }
    
    0 讨论(0)
  • 2020-11-28 04:47

    This works for me best: beforeSerialize callback

    $('form#description').ajaxForm({
        beforeSerialize:function($Form, options){
            /* Before serialize */
            for ( instance in CKEDITOR.instances ) {
                CKEDITOR.instances[instance].updateElement();
            }
            return true; 
        },
        // other options
    });
    
    0 讨论(0)
  • 2020-11-28 04:59

    In my case the following helped me,i just use these two lines before seializing the form.

      for ( instance in CKEDITOR.instances )
           CKEDITOR.instances[instance].updateElement();
    
      var data = $('#myForm').serializeArray();
    
    0 讨论(0)
提交回复
热议问题