onclick
पाठ फ़ील्ड के लिए इनपुट मान प्राप्त करने के लिए आप किसी इवेंट हैंडलर का उपयोग कर सकते हैं । सुनिश्चित करें कि आप फ़ील्ड को एक विशिष्ट id
विशेषता प्रदान करते हैं ताकि आप इसे सुरक्षित रूप से संदर्भित कर सकें document.getElementById()
:
यदि आप तत्वों को गतिशील रूप से जोड़ना चाहते हैं, तो आपके पास एक कंटेनर होना चाहिए जहां उन्हें रखना है। उदाहरण के लिए, ए <div id="container">
। के माध्यम से नए तत्व बनाएं document.createElement()
, और appendChild()
उनमें से प्रत्येक को कंटेनर में जोड़ने के लिए उपयोग करें। यदि आप किसी प्रपत्र में सबमिट किए जाने वाले हैं, तो आप एक सार्थक name
विशेषता (उदाहरण के name="member"+i
लिए डायनामिक रूप से उत्पन्न <input>
s के लिए आउटपुट के लिए इच्छुक हो सकते हैं।
ध्यान दें कि आप <br/>
तत्वों को भी बना सकते हैं document.createElement('br')
। यदि आप कुछ पाठ का उत्पादन करना चाहते हैं, तो आप document.createTextNode()
इसके बजाय उपयोग कर सकते हैं ।
इसके अलावा, यदि आप हर बार कंटेनर को खाली करना चाहते हैं, तो यह आबादी के बारे में है, आप उपयोग कर सकते हैं hasChildNodes()
और removeChild()
एक साथ।
<html>
<head>
<script type='text/javascript'>
function addFields(){
var number = document.getElementById("member").value;
var container = document.getElementById("container");
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i=0;i<number;i++){
container.appendChild(document.createTextNode("Member " + (i+1)));
var input = document.createElement("input");
input.type = "text";
input.name = "member" + i;
container.appendChild(input);
container.appendChild(document.createElement("br"));
}
}
</script>
</head>
<body>
<input type="text" id="member" name="member" value="">Number of members: (max. 10)<br />
<a href="#" id="filldetails" onclick="addFields()">Fill Details</a>
<div id="container"/>
</body>
</html>
इस JSFiddle में एक काम का नमूना देखें ।
Uncaught TypeError: Cannot call method 'appendChild' of undefined