Anda bisa menggunakan onclickpengendali kejadian untuk mendapatkan nilai input untuk bidang teks. Pastikan Anda memberi kolom idatribut unik sehingga Anda dapat merujuknya dengan aman melalui document.getElementById():
Jika Anda ingin menambahkan elemen secara dinamis, Anda harus memiliki wadah untuk menempatkannya. Misalnya, a <div id="container">. Buat elemen baru dengan cara document.createElement(), dan gunakan appendChild()untuk menambahkan masing-masing elemen ke wadah. Anda mungkin tertarik untuk mengeluarkan nameatribut yang berarti (misalnya name="member"+iuntuk setiap atribut yang dihasilkan secara dinamis <input>jika mereka akan dikirimkan dalam formulir.
Perhatikan bahwa Anda juga bisa membuat <br/>elemen dengan document.createElement('br'). Jika Anda hanya ingin menampilkan beberapa teks, Anda dapat menggunakan document.createTextNode().
Selain itu, jika Anda ingin membersihkan wadah setiap kali akan diisi, Anda dapat menggunakan hasChildNodes()dan removeChild()bersama - sama.
<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>
Lihat contoh yang berfungsi di JSFiddle ini .
Uncaught TypeError: Cannot call method 'appendChild' of undefined