[英]ajax submitting forms using FormData
我試圖僅提交非常大形式的特定輸入,而我想使用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。 有任何想法嗎? 提前致謝
您不能如下創建formData
dat = new FormData($('#someDiv').find('input'));
您需要將Javascript表單引用傳遞給表單,例如,如果表單的ID為singupForm,則如下所示
dat = new FormData($('#singupForm')[0]);
編輯
如果您只想添加選定的字段,可以按照以下步驟進行操作
var formData = new FormData();
formData.append("variable", "First Value");
formData.append("integerVariable", 987654321);
// For file, remember to pass the JavaScript reference
formData.append("userfile", fileInputElement.files[0]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.