2012-06-26 17 views
9

dniu złożenia formularza używam jQuery do zbierania danych, w tym plików i tworzenie FormData Przedmiot wartości za pomocą formularza:Jak dodać wartość tablicy do nowych danych formularza?

var formData = new FormData($("form#formid")[0]); 

ale jak mogę dodać inną wartość i to jest klucz do tego FormData obiektu?

+0

@Esailija Potrzebuję uzyskać zawartość postaci włączając pilniki do posta z AJAX, nie myśleć 'serialize()' może obsłużyć pliki? – Dan

+0

Byłem zdezorientowany, ponieważ powiedziałeś "tablica". Edytowałem to tak, jak myślę, że pytasz. – Esailija

Odpowiedz

2

Można iteracyjne nad wszystkie pola w formularzu i dodać je do FormData dość łatwo w ten sposób:

var formData = new FormData(); 
$("form#edit-account").serializeArray().forEach(function(field) { 
    formData.append(field.name, field.value) 
});​ 
0
$('form').submit(function (e) { 
var data; 

data = new FormData(); 
data.append('file', $('#file')[0].files[0]); 

$.ajax({ 
    url: 'http://hacheck.tel.fer.hr/xml.pl', 
    data: data, 
    processData: false, 
    type: 'POST', 
    success: function (data) { 
     alert(data); 
    } 
}); 

e.preventDefault(); 

});

0
var data = new FormData(), 
    fields = $("#myForm").serializeArray(); 

$.each(fields, function(i, field) { 
    data.append(field.name, field.value); 
}); 
0

Można również użyć FormData.set().

Różnica między FormData.set i dołączania() jest to, że jeśli określony klucz już istnieje, FormData.set zastąpi wszystkie istniejące wartości z nowym, podczas dołączania() doda nową wartość na końcu istniejącego zestawu wartości.

Składnia:

formData.set(name, value); 
Powiązane problemy