簡體   English   中英

Ajax使用FormData提交表單

[英]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.

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