2012-11-21 13 views
5

मैंने इस फ़ॉर्म में एक HTML फॉर्म बनाया है, जब मैं एक बटन पर क्लिक करता हूं, यह पूर्वनिर्धारित मानदंडों के आधार पर इनपुट टेक्स्ट फ़ील्ड बनाता है, यह ठीक काम करता है। अब जब मैं उन बनाए गए टेक्स्ट फ़ील्ड में दर्ज किए गए मान को आज़माकर पुनर्प्राप्त कर रहा हूं, तो मैं ऐसा करने में सक्षम नहीं हूं।गतिशील रूप से बनाए गए तत्वों के मान को पुनर्प्राप्त करना

मैं दो प्रश्न

  1. डायनामिक रूप से तैयार पाठ क्षेत्रों से आदानों पुनः प्राप्त करने के लिए सबसे अच्छा तरीका क्या है?
  2. तुम मुझे बताओ क्यों कोड मैं लिखा है काम नहीं करता है सकते हैं

एचटीएमएल कोड

<BODY> 
<FORM> 
    <BR/> 
    <div align = "center"> 
     <br /><br /> 
     <INPUT type="button" value="Click To Enter Values" onclick="getkeywords()"/> 
    </div> 
    <div align="center" id="d_div"> 
     <form name="permavalues" id="d_form"> 
     </form> 
     <br/> <br/> 
    </div> 
</FORM> 

जावास्क्रिप्ट कोड है कि मैं उपयोग कर रहा हूँ यह है:

function getkeywords() { 
    var index_array = new Array(); 
    var myString = "one and a two and a three = $ and four = $ and five = $"; 
    var splitresult = myString.split(" "); 

    for(i = 0; i < splitresult.length; i++) 
    { 
     if (splitresult[i] == "$" && i > 1) //retireving the keywords.. 
     { 
      add(splitresult[i-2]); 
     } 
    } 
} 

अतिरिक्त कार्य जिसे गेटकीवर्ड में कहा जाता है:

function add(s) { 
    //Create an input type dynamically. 
    var element = document.createElement("input"); 
    //Assign different attributes to the element. 
    element.setAttribute("type", "text"); 
    element.setAttribute("value", s); 
    element.setAttribute("name", s); 
    element.setAttribute("id", s); 

    var foo = document.getElementById("d_form"); 

    //Append the element in page (in span). 
    foo.appendChild(element); 
    alert("Value=" + document.getElemebtById(s).value); 
} 

मुझे लगता है कि मैं element.setAtrribute("id",s);

+0

आप अपने कोड लिखने में कोई गलती है: 'चेतावनी (" मूल्य = "+ document.getElemebtById (रों) .Value);' होना चाहिए 'चेतावनी (" मूल्य = "+ document.getElementById (रों)। मूल्य); ' – IvanL

+0

ओह, मुझे इसे याद करना होगा ... तर्क सही है मैं तर्क के साथ अधिक चिंतित हूं जिसका मैंने उपयोग किया है। यहां मैं मूल्य विशेषता को सेट कर रहा हूं, हालांकि जब वेबपृष्ठ में ग्रंथ प्रदर्शित होते हैं और उपयोगकर्ता कुछ इनपुट को इनपुट करता है, तो मैं इसे कैसे प्राप्त करूं?क्या यह स्टोर संपत्ति में संग्रहीत किया जाएगा? – Riddle

+0

आप हमेशा उपयोगकर्ता द्वारा इनपुट किए गए वैल्यू को वैसे ही पुनर्प्राप्त कर सकते हैं जैसा कि आप इसे अभी प्रदर्शित कर रहे हैं। आईडी द्वारा तत्व का चयन करें और मान पुनर्प्राप्त करें। 'Document.getElementById (रों) .value'। यदि आप jQuery का उपयोग करते हैं तो आप अंत में अपने सभी इनपुट के माध्यम से उन्हें संसाधित करने के लिए चला सकते हैं लेकिन यह निश्चित रूप से इस बात पर निर्भर करता है कि आप अपने पृष्ठ के साथ क्या करने की योजना बना रहे हैं। – IvanL

उत्तर

0

साथ एक गलती बड़ी समस्या आप एक और रूप के अंदर प्रपत्र नहीं डाल सकते है होना आवश्यक है। कृपया आपको एचटीएमएल कोड लाइन 2 और लाइन 13 हटाएं।

एक और समस्या आपके टाइपो है, जैसा कि इवानएल ने कहा था।

अन्य कोड ठीक हैं।

आपको नीचे दिए गए कार्य कोड का पूर्ण परीक्षण किया गया है।

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>test</title> 
<script language="javascript"> 
function getkeywords() { 
    var index_array = new Array(); 
    var myString = "one and a two and a three = $ and four = $ and five = $"; 
    var splitresult = myString.split(" "); 

    for(i = 0; i < splitresult.length; i++) 
    { 
     if (splitresult[i] == "$" && i > 1) //retireving the keywords.. 
     { 
      add(splitresult[i-2]); 
     } 
    } 
} 
function add(s) { 
    //Create an input type dynamically. 
    var element = document.createElement("input"); 
    //Assign different attributes to the element. 
    element.setAttribute("type", "text"); 
    element.setAttribute("value", s); 
    element.setAttribute("name", s); 
    element.setAttribute("id", s); 

    var foo = document.getElementById("d_form"); 

    //Append the element in page (in span). 
    foo.appendChild(element); 
    alert("Value=" + document.getElementById(s).value); 
} 
</script> 
</head> 
<BODY> 
    <BR/> 
    <div align = "center"> 
     <br /><br /> 
     <INPUT type="button" value="Click To Enter Values" onclick="getkeywords()"/> 
     <br><br><br> 
     <input type="button" value="add" onclick="add('tt')"> 
    </div> 
    <div align="center" id="d_div"> 
     <form name="permavalues" id="d_form"> 
     </form> 
     <br/> <br/> 
    </div> 
</body> 
</html> 
0

डायनामिक रूप से तैयार पाठ क्षेत्रों से आदानों पुनः प्राप्त करने के लिए सबसे अच्छा तरीका क्या है?

मैं सभी पाठ इनपुट तत्वों के लिए फॉर्म को पार करने के लिए JQuery का उपयोग करता हूं और उनके संबंधित मानों को पुनर्प्राप्त करता हूं।

वैकल्पिक रूप से, आप प्रत्येक टेक्स्ट फ़ील्ड्स को "txt_" जैसे सामान्य नाम दे सकते हैं और फिर स्ट्रिंग (आईई - txt_1, txt_2, txt_3, ...) में एक वृद्धिशील आईडी जोड़ सकते हैं, फिर प्रोग्रामेटिक रूप से अपने फॉर्म पर फिर से सक्रिय करें फ़ील्ड जो तब तक मेल खाते हैं जब तक आप एक ऐसे मूल्य तक नहीं पहुंच जाते जो उपलब्ध फॉर्म फ़ील्ड की कुल संख्या का प्रतिनिधित्व करता हो। वह मान जावास्क्रिप्ट पूर्णांक हो सकता है।

उदाहरण के लिए ...

$("form input[type='text']").each(function() 
{ 
    // gets text value for each field in the form 
    var textFieldValue = this.value; 

    // do stuff 
}); 
0

सभी इनपुट मूल्य प्राप्त करने के लिए jQuery के कोड पर एक नज़र डालें।

$(document).ready(function() 
{ 
    $('form#d_form input[type="text"]').each(
    function() 
    { 
     alert($(this).val()); 
    }); 
}); 
संबंधित मुद्दे