2012-06-26 13 views
9

jQuery veri içeren dosyaları toplamak için kullanıyor ve kullanma şekli değerlerinin FormData Nesne oluşturma:Yeni FormData'ye dizi değeri nasıl eklenir? Form teslimi esnasında

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

ama nasıl başka bir değer ekleyebilir ve Nesne FormData bu sırrı budur?

+0

@Esailija ben 'serialize()' dosyaları ele verebilir düşünmüyordu, DOSYALARI ajax ile post dahil formun içeriğini almak gerekir? – Dan

+0

Kafam karıştı çünkü "dizi" dedin. Sorduğunu düşündüğüm şeyi düzenledim. – Esailija

cevap

22
var formData = new FormData($("form#formid")[0]); 
formData.append("key", "value") 

Sen tüm alanları şeklinde üzerinden yineleme ve oldukça kolay FormData bu şekilde ekleyebilirsiniz

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

FormData.set()'u da kullanabilirsiniz.

FormData.set ve ekleme() arasındaki fark, belirtilen anahtar zaten mevcut olması durumunda, FormData.set) ise (ekleme, yenisi ile mevcut tüm değerlerin üzerine yeni bir değer eklemek olacaktır Mevcut değerler kümesinin sonuna.

Dizimi:

formData.set(name, value);