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 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办