Javascript 如何将json类型数据附加到新的FormData

Javascript 如何将json类型数据附加到新的FormData,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我有一个像这样的php文件 <form id="f-comment" class="form" method="post" action="submit_img_comment.php"> <textarea name="comment"></textarea> <input type="submit" value="Publish" data-params='{"imageid":<?php echo $imageid; ?>

我有一个像这样的php文件

<form id="f-comment" class="form" method="post" action="submit_img_comment.php">
    <textarea name="comment"></textarea>
    <input type="submit" value="Publish" data-params='{"imageid":<?php echo $imageid; ?>}'>
</form>
到目前为止还不错

唯一缺少的是如何将参数添加到FormData。有什么想法吗?

使用
.append()
,请参阅;将
参数声明处的选择器调整为
$(输入[type=submit],this)
,其中
this
表单
,而
data()
输入类型=“submit”
元素处引用
.data()

 $(document).on("submit", ".form", function(e) {
    e.preventDefault();
    var data = new FormData("form", this);
    var params = $("input[type=submit]", this).data("params");
    data.append("params", params);
    $.ajax({
        type: form.attr("method"),
        url: "include/" + form.attr("action"),
        data: data,
        dataType: "json",
        contentType: false,
        processData: false,
        cache: false
    }).done(function(data) {
        alert(data['msg']);
    }).fail(function(data) {
        alert("Error: Ajax Failed.");
    }).always(function(data) {
        // always do the following, no matter if it fails or not
    })
  })

对象
FormData
是向对象添加新参数的方法
append

例如:

var FD = new FormData('id-form');
FD.append('name','value');

您混淆了提交按钮和表单。。。表单是
,而不是按钮似乎没有任何文件上传,那么为什么要像这样发送数据呢?您似乎只需要
数据:$(this).serialize()
@adeneo知道没有。如果以后有文件上传,我会重新更改代码吗?“当然不是。”查理·诺普说。我没有混淆任何事情。不确定您的观点是什么…重点是您希望
是代码中的两个不同元素。该表单没有数据属性,因此是
this
。此按钮不在
中<代码>您提交的表格是什么?=$(this)
。我想添加一个在数据参数上找到的json对象。这不起作用我所做的是:var data=newformdata(This);这似乎行得通。
var FD = new FormData('id-form');
FD.append('name','value');