2012-06-26 17 views
9

फ़ॉर्म जमा पर मैं jQuery फ़ाइलों सहित डेटा इकट्ठा करने का उपयोग कर रहा है और का उपयोग कर प्रपत्र मूल्यों की एक FormData वस्तु बनाने:नए फॉर्मडेटा में सरणी मान कैसे जोड़ें?

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

लेकिन मैं एक और मूल्य कैसे जोड़ सकते हैं और यह FormData वस्तु इस के लिए महत्वपूर्ण है?

+0

@Esailija मुझे नहीं लगता था 'serialize()' फ़ाइलों को संभाल सकता, फ़ाइलें ajax के साथ पोस्ट करने के लिए सहित फ़ॉर्म की सामग्री प्राप्त करने की आवश्यकता? – Dan

+0

मैं उलझन में था क्योंकि आपने कहा "सरणी"। मैंने इसे संपादित करने के लिए संपादित किया जो मुझे लगता है कि आप पूछ रहे हैं। – Esailija

उत्तर

2

देखें आप रूप में सभी क्षेत्रों पर पुनरावृति और उन्हें FormData काफी आसानी से करने के लिए इस तरह से जोड़ सकते हैं:

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

आप FormData.set() का भी उपयोग कर सकते हैं।

FormData.set और संलग्न() के बीच अंतर यह है कि अगर निर्दिष्ट कुंजी पहले से मौजूद, FormData.set सभी मौजूदा मूल्यों नए के साथ) के ऊपर लिख देगा, जबकि संलग्न (नया मान संलग्न कर देगा है मूल्यों के मौजूदा सेट के अंत में।

सिंटेक्स:

formData.set(name, value); 
संबंधित मुद्दे