2011-09-06 17 views
9

मेरे पास एक ऐसा फॉर्म है जो बहु-फ़ाइल अपलोडर (swfupload) के आधार पर AJAX के माध्यम से उत्पन्न होता है। यह अपलोड की गई प्रत्येक फ़ाइल के पूरा होने पर दिए गए डोम तत्व में अधिक फॉर्म तत्व जोड़ता है। इस प्रकार मुझे एक समस्या है। अगर मैंने अपलोड करने के लिए 5 फाइलों का चयन किया है, तो पहली फ़ाइल एक फॉर्म उत्पन्न करेगी जिसमें मैं डेटा दर्ज करना शुरू कर दूंगा, हालांकि, जब दूसरी फ़ाइल अपलोड हो जाती है, तो यह फॉर्म तत्वों में पिछले दर्ज डेटा को साफ़ करता है और दूसरे फॉर्म तत्वों को भी जोड़ता है ।फॉर्म सामग्री को नष्ट किए बिना आंतरिक HTML में जोड़ें

मुझे लगता है कि इस वजह से का उपयोग कर im:

document.getElementById('test').innerHTML = document.getElementById('test').innerHTML + newformelements; 

मैं कर लगता है कि ऊपर किसी भी रूपों में डेटा दर्ज किया, बस HTML ही नहीं रखता।

तो, मैं इस तत्व को पहले से ही फार्म फ़ील्ड में जो कुछ भी डाल रहा हूं उसे नष्ट किए बिना कैसे जोड़ सकता हूं? बहु-अपलोडर के आधार पर संभावित बच्चों की संख्या गतिशील है।

+1

आप इस पर विश्वास नहीं है, लेकिन उस के लिए 'वास्तव में देखते हैं डोम हेरफेर कार्य: P', का उपयोग नहीं करते innerHTML - innerHTML के माध्यम से डोम मनोरंजन से बचा जाना चाहिए! –

+0

प्रकट करने की देखभाल? – David

+0

मुझे लगता है कि आप गलत हैं कि आंतरिक HTML क्या है। क्या आपको किसी चीज़ की एक टेबल की आवश्यकता है, जो गतिशील रूप से नए डेटा के अनुसार फैली हुई है? – T9b

उत्तर

6

क्या आप jquery का उपयोग करने के लिए खुले हैं? हाँ तो आप आसानी से कुछ इस तरह कर सकते हैं

$("#divid").append("html you want to append"); 
6

इस मामले में डीओएम मैनिपुलेशन का उपयोग करें: Node.appendChild[docs]

innerHTMLहमेशा तत्वों को नष्ट और पुनर्निर्मित करेगा।

0

एक नया तत्व बनाएं, इसे अपने आंतरिक HTML सेट करें, इसे फ़ॉर्म के बच्चों के अंत में जोड़ने के बजाय।