Możesz użyć onclickmodułu obsługi zdarzeń, aby uzyskać wartość wejściową dla pola tekstowego. Upewnij się, że nadałeś polu unikalny idatrybut, abyś mógł bezpiecznie się do niego odwoływać poprzez document.getElementById():
Jeśli chcesz dynamicznie dodawać elementy, powinieneś mieć pojemnik, w którym je umieścić. Na przykład a <div id="container">. Twórz nowe elementy za pomocą document.createElement()i appendChild()dołączaj każdy z nich do kontenera. Możesz być zainteresowany wyprowadzeniem znaczącego nameatrybutu (np. name="member"+iDla każdego z dynamicznie generowanych <input>plików, jeśli mają być przesłane w formularzu).
Zauważ, że możesz również tworzyć <br/>elementy za pomocą document.createElement('br'). Jeśli chcesz po prostu wypisać jakiś tekst, możesz użyć document.createTextNode()zamiast tego.
Ponadto, jeśli chcesz wyczyścić kontener za każdym razem, gdy ma się zapełnić, możesz użyć hasChildNodes()i removeChild()razem.
<html>
<head>
<script type='text/javascript'>
function addFields(){
// Number of inputs to create
var number = document.getElementById("member").value;
// Container <div> where dynamic content will be placed
var container = document.getElementById("container");
// Clear previous contents of the container
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i=0;i<number;i++){
// Append a node with a random text
container.appendChild(document.createTextNode("Member " + (i+1)));
// Create an <input> element, set its type and name attributes
var input = document.createElement("input");
input.type = "text";
input.name = "member" + i;
container.appendChild(input);
// Append a line break
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>
Zobacz próbkę roboczą w tym JSFiddle .
Uncaught TypeError: Cannot call method 'appendChild' of undefined