Sie können einen onclick
Ereignishandler verwenden, um den Eingabewert für das Textfeld abzurufen. Stellen Sie sicher, dass Sie dem Feld ein eindeutiges id
Attribut geben, damit Sie sicher auf Folgendes verweisen können document.getElementById()
:
Wenn Sie Elemente dynamisch hinzufügen möchten, sollten Sie einen Container haben, in dem Sie sie platzieren können. Zum Beispiel a <div id="container">
. Erstellen Sie neue Elemente mit document.createElement()
und appendChild()
hängen Sie sie an den Container an. Möglicherweise möchten Sie ein aussagekräftiges name
Attribut ausgeben (z. B. name="member"+i
für jedes der dynamisch generierten <input>
s, wenn diese in einem Formular eingereicht werden sollen.
Beachten Sie, dass Sie auch <br/>
Elemente mit erstellen können document.createElement('br')
. Wenn Sie nur Text ausgeben möchten, können Sie document.createTextNode()
stattdessen verwenden.
Auch, wenn Sie den Behälter jedes Mal , es im Begriff ist , werden bevölkert löschen möchten, können Sie verwenden , hasChildNodes()
und removeChild()
zusammen.
<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>
Sehen Sie sich ein Arbeitsbeispiel in dieser JSFiddle an .
Uncaught TypeError: Cannot call method 'appendChild' of undefined
input.className += ' someCSSClass';
name
Attribut haben. Nur Formularelemente mit einem Namensattribut erhalten beim Senden eines Formulars ihre Werte übergeben.Versuchen Sie diesen JQuery-Code, um das Verhalten von Formularen, Feldern und Löschen / Entfernen dynamisch einzuschließen:
Siehe Demo hier
quelle