2010-11-30 9 views
0

Mit dem folgenden Skript hänge ich 3 Elemente an, wenn der Anhängen Button angeklickt wird.Button onclick checkt nur das erste angefügte Kontrollkästchen

  • eine Checkbox
  • Eingabetextfeld
  • Schaltfläche Löschen

Vorerst, wenn die Löschtaste angeklickt wird das Kontrollkästchen aktiviert ist, aber wenn ich die anhängen es eine andere (nennen wir eine Gruppe) drei Elemente, das Skript funktioniert nicht.

Kann jemand erklären, wie ich die Elemente in irgendeiner Weise verbinden kann. So dass jedes Mal, wenn ich auf den Anfüge-Button klicke, die Elemente mit den Elementen verknüpft sind, die beim Klicken gleichzeitig auf die gleiche Weise erstellt wurden.

Vielen Dank im Voraus

<html> 
    <head> 
    <script language="Javascript"> 

    function append() 
    { 
    var cb = document.createElement("input"); 
    cb.type = "checkbox"; 
    cb.id = "id" 
      cb.checked = false; 

    var textfield = document.createElement("input"); 
    var delbtn = document.createElement("input"); 
    delbtn.type = "button"; 
    delbtn.value = "remove"; 
    delbtn.onclick= function(){remove()} 

    document.getElementById('append').appendChild(cb); 
    document.getElementById('append').appendChild(textfield); 
    document.getElementById('append').appendChild(delbtn); 
    } 


function remove() 
{ 
    id.checked = true;  
} 
    </script> 
    </head> 
    <body> 
     <div id="append"></div> 
     <input type="button" value="append" onClick="javascript:append()"/> 
    </body> 
</html> 

Antwort

1

Jedes Mal, wenn Sie eine neue Checkbox anhängen, sind Sie

cb.id = "id" 

Dies ist problematisch, ausgeführt wird, da Elemente eindeutige IDs haben sollte.

Auch Sie verweist das Element durch seine ID im globalen Bereich:

id.checked = true; 

Sie sollen den Standard document.getElementById() stattdessen verwenden.

+0

Danke, aber heißt das, ich muss ein Array aus den drei erstellten Elementen erstellen? – Opoe