2012-04-13 9 views
0

Das Problem ich habe ausgewählt meine erste select-lists ausgewählter Optionsindex = 0;
Dies sollte nicht passieren, aber ich kann nicht herausfinden, warum es es trotzdem macht. Kann mir jemand sagen, was ich falsch gemacht habe?ein div Klonen setzt alle Elemente des Ziel div

<script type="text/javascript"> 
function add(){ 
var div =document.getElementById('ruletemplate').cloneNode(true); 

document.getElementById('rules').innerHTML += div.innerHTML; 
return false; 
} 

</script> 
<div id="ruletemplate" style="display: none;"> 
<div > 
    <label for="rule">Rule</label> 
    <select name="rules[][option]"> 
     <option>MAX PERS</option> 
     <option>MIN PERS</option> 
    </select> 
    <input name="rule[][amount]" type="text"/> 
</div> 
</div> 
<form> 
<div id="rules" > 

</div> 
<a id="addRule" href="" onclick="javascript: add(); return false;">add</a> 
<input type="Submit" value="Save" /> 
</form> 
+0

Dont im Titel gelöst put - klicken Sie auf die kleine Markierung Häkchen neben der Antwort, die am meisten dazu beigetragen, ... [siehe diesen Link] (http://meta.stackexchange.com/a/5235/170679) – ManseUK

Antwort

0

Der Grund Es ist, dass Sie die innereHTML setzen, was bedeutet, dass die ganze Sache repariert wird. Sie müssen das Element stattdessen an den Container anhängen. Probieren Sie es aus, es sollte die Position jedes einzelnen auswählen.

function add(){ 
var div =document.getElementById('ruletemplate').cloneNode(true); 
div.style.display='block'; 
document.getElementById('rules').appendChild(div); 
return false; 
} 
+0

Awesome, It works ! Danke für Ihre Hilfe! – user1331696

+0

Nicht auf Chrom für mich -> http://jsfiddle.net/arvjV/ – ManseUK

+0

@ManseUK das ist komisch, weil es die Position für mich auf Chrome hält. – qw3n

0

Die Option Element bleibt in dem aktuellen ausgewählten Zustand mit den selected JavaScript-Eigenschaft (nicht mit dem ausgewählten Attribute verwechselt werden, der ausgewählten Zustand auf Standard entspricht).

Dieses ist nicht geklont - so können Sie die Auswahl manuell

Hinweis aktualisieren würde - Sie keine doppelten id s auf einem einzigen Dokument haben kann - wenn Sie Sie Element klonen duplizieren Sie id s

+0

Der Innerhtml dieses div hat keine ID zugewiesen, daher gibt es keine Duplikat IDs.

\t \t \t \t \t \t \t
user1331696

+0

@@ user1331696 ok - lesen Sie dies einfach aus der Dokumentation -> 'Der doppelte cloneNode-Knoten erhält eine neue uniqueID, wenn er einem anderen Knoten hinzugefügt wird. Sie müssen den ausgewählten Status manuell übergeben. – ManseUK