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