【发布时间】:2015-05-06 12:17:06
【问题描述】:
我试图只提交一个非常大的表单的特定输入,我想使用 ajax 来做到这一点。我有这个,它工作正常。这将提交#someDiv 中的所有输入。
$(".save").click(function () {
dat = $.param($('#someDiv').find('input'));
$.ajax({
type: "POST",
url: "...",
data: dat,
success: function(data) {
//success
}
});
});
然后我记得其中一些输入是文件输入,所以这不起作用。我做了一些研究,发现使用 FormData 是可行的方法:
$(".save").click(function () {
dat = new FormData($('#someDiv').find('input'));
$.ajax({
type: "POST",
url: "...",
data: dat,
processData: false,
contentType: false,
success: function(data) {
//success
}
});
});
但是这个函数不起作用,成功函数正在触发但没有任何保存,所以我认为 FormData 没有正确创建。有任何想法吗?提前致谢
【问题讨论】:
-
你试过serialize()吗?
-
我认为你对 find 返回的内容有误。
-
我只在包含图片、文件等数据时使用
FormData,如果您想创建一个新的FormData,它应该是一个表单而不是常规数据,请改用new FormData($('form')[0]).如果你想发送字符串使用$('form').serialize()
标签: javascript jquery ajax forms multipartform-data