doujuchuan9915 2019-03-16 16:35
浏览 119
已采纳

插入db时,CKEDITOR值为NULL

Sorry for my bad english, I wan't to inserting data to database with CKEDITOR and ajax submit, i have code

$('#add').submit(function(e) {
    var fd = new FormData(this);
    e.preventDefault();
    // CKEDITOR.instances.isiForm.updateElement();
    for ( instance in CKEDITOR.instances ) {
        CKEDITOR.instances.isiForm.updateElement();
    }
    $.ajax({
        type: "POST",
        url:  "blog_add",
        data: fd,
        cache: false,
        contentType: false,
        processData: false,
        success: function(result){
            if(result=='1'){
                table.ajax.reload(null,false);
              $('#add').modal('hide');
                // success result
            } else {
                // failed result
      }
        }
    });
});
<form class="modal fade" id="add" enctype="multipart/form-data">
    <div class="form-group">
        <label>Isi Post</label>
        <textarea id="isiForm" name="isiForm" cols="5" class="form-control rsf"></textarea>
    </div>
</form>

I have tried using CKEDITOR.instances.isiForm.updateElement(); but it not works, the value always NULL, so how can i insert to database with ajax? and i have try many thread but no one succeed

</div>
  • 写回答

1条回答 默认 最新

  • dsjojts9734 2019-03-16 16:47
    关注

    You're getting the FormData BEFORE ckeditor has updated the textarea. Just switch it around so that the CKEDITOR elements are updated before you fetch the FormData.

    EG (untested)

    $('#add').submit(function(e) {
        e.preventDefault();
      //first update the form values
        for ( instance in CKEDITOR.instances ) {
            CKEDITOR.instances.isiForm.updateElement();
        }
      //then get the form data
        var fd = new FormData(this);
      //post via ajax
        $.ajax({
            type: "POST",
            url:  "blog_add",
            data: fd,
            cache: false,
            contentType: false,
            processData: false,
            success: function(result){
                if(result=='1'){
                    table.ajax.reload(null,false);
                  $('#add').modal('hide');
                    // success result
                } else {
                    // failed result
          }
            }
        });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <form class="modal fade" id="add" enctype="multipart/form-data">
        <div class="form-group">
            <label>Isi Post</label>
            <textarea id="isiForm" name="isiForm" cols="5" class="form-control rsf"></textarea>
        </div>
    </form>

    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办