簡體   English   中英

使用 FormData 對象獲取 CKeditor 值

[英]Get CKeditor Value Using FormData Object

下面是我的 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)?

按鈕沒有提交事件,您必須將提交事件綁定到表單,還必須防止表單提交,因為您使用 ajax 發布數據。
CKEditor 管理它自己的內容所以它不在 textarea 中,您可以通過調用 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){

    }
  });
})

你可能會使用:

$(form).trigger('form-pre-serialize');

然后創建新的FormData()

在ajax調用之前添加:

var data = new FormData([form]);
data.append('[textarea_name]', CKEDITOR.instances['textarea_id'].getData());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM