onclick
Metin alanı için giriş değerini almak için bir olay işleyicisi kullanabilirsiniz . id
Aşağıdakiler aracılığıyla güvenle başvurabilmek için alana benzersiz bir özellik verdiğinizden emin olun document.getElementById()
:
Dinamik olarak eleman eklemek istiyorsanız, onları yerleştireceğiniz bir konteynere sahip olmalısınız. Örneğin, a <div id="container">
. Aracılığıyla yeni öğeler oluşturun document.createElement()
ve appendChild()
her birini kaba eklemek için kullanın. Anlamlı bir name
öznitelik çıkarmak ilginizi çekebilir (örneğin name="member"+i
, dinamik olarak üretilen her bir URL <input>
bir formda gönderileceklerse için.
İle <br/>
öğeler de oluşturabileceğinizi unutmayın document.createElement('br')
. Sadece bir metin çıktısı almak istiyorsanız, document.createTextNode()
bunun yerine kullanabilirsiniz .
Ayrıca, kapsayıcıyı doldurmak üzere olan her seferinde temizlemek isterseniz, hasChildNodes()
ve removeChild()
birlikte kullanabilirsiniz .
<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>
Bu JSFiddle'da çalışan bir örneğe bakın .
Uncaught TypeError: Cannot call method 'appendChild' of undefined