javascript - 使用 FormData 对象获取 CKeditor 值

标签 javascript php jquery html ajax

下面是我的 html 表单

<form id='add'>
<input type="text" name="title">
<textarea id="usingckeditor" name="content"></textarea>
<input type="file" name="file">
<button id="save">save</button>
</form>

这是我的 JavaScript

$("#save").on('submit',(function(e) {
 $.ajax({
    url: "blog/saveblog.php",
    type: "POST",
    data:  new FormData(this),
    contentType: false,
    cache: false,
    processData:false,
    success: function(data){

    }
});
})

我正在使用 new FormData() 将数据发送到 saveblog.php,saveblog.php 正在上传图像并获取 $_POST['title'] 的值,但 $_POST['content'] 为空

FormData如何获取textarea的内容(使用ckeditor)?

最佳答案

按钮没有提交事件,您必须将提交事件绑定(bind)到表单,而且您还必须阻止表单提交,因为您使用ajax来发布数据。
CKEditor 管理自己的内容,因此它不在文本区域中,您可以通过在 CKEditor 实例上调用 getData() 来获取它

<form id='add'>
  <input type="text" name="title">
  <textarea id="usingckeditor"></textarea>
  <!-- remove name attribute so it will not pollute form data object -->
  <input type="file" name="file">
  <button id="save">save</button>
</form>
$("#add").on('submit',(function(e) {// attach form to submit event
  e.preventDefault(); //prevent the form from submitting
  var data = new FormData(this);
  //add the content
  data.append('content', CKEDITOR.instances['usingckeditor'].getData());
  $.ajax({
    url: "blog/saveblog.php",
    type: "POST",
    data:  data,
    contentType: false,
    cache: false,
    processData:false,
    success: function(data){

    }
  });
})

关于javascript - 使用 FormData 对象获取 CKeditor 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616498/

相关文章:

javascript - OpenLayers 无法在 map 上绘制 geoJSON

PHP - 查找最大值/最大值

php - 在 Mac 上编译 PHP

javascript - Jquery长按,停止短按 Action 不起作用

javascript - JQuery 不删除类?

Javascript - 从 Javascript 对象中提取对象 ID

javascript - 设置 JavaScript 以调用具有不同参数的函数

javascript - 克隆输入而不带其值

javascript - 在 Canvas 上绘图时鼠标坐标不正确

php - 是否可以在 Symfony2 中动态注册包?