2016-05-23 5 views
1

Hier ist ein Jfiddle: http://jsfiddle.net/qHSWK/247/ und Code ich gefunden, aber ursprünglich war es von ID. Ich habe mehrere Dropdown-Listen, die den gleichen Inhalt haben, also wäre es besser, alle auf einmal mit dem Namen zu machen. Nicht großartig mit Javascript, aber ich dachte, es würde so funktionieren. Was ist hier falsch?Wie kann ich Jahre zu mehreren Drop-Downs mit dem Namen hinzufügen, mit Javascript?

<form id="someform"> 
<select name="year"></select> 
</form> 

var myselect = document.getElementsByName("year"), 
startYear = new Date().getFullYear() 
count = 5; 

(function(select, val, count) { 
do { 
select.add(new Option(val++, count--), null); 
} while (count); 
})(myselect, startYear, count); 

Finale mit mehreren Drop-downs:

var myselect = document.getElementsByName("year"), 
startYear = new Date().getFullYear() 
count = 45; 

for (var n = 0; n<5;n++){ 
(function(select, val, count) { 
do { 
select.add(new Option(val--, count--), null); 

} while (count); 
})(myselect[n], startYear, count); 


} 
+0

Ihre 'myselect' ist eine Sammlung von Elementen. Verwende 'myselect [0]', um auf die erste Auswahl zuzugreifen. –

Antwort

1

Wenden Sie diese auf mehr select Elemente wie im Beispiel unten.

var myselect = document.querySelectorAll("[name=year],[name=year1],[name=year2]"), 
 
    startYear = new Date().getFullYear(), 
 
    count = 5; 
 
for(i=0;i<myselect.length;i++) { 
 
(function(select, val, count) { 
 
    do { 
 
    select.add(new Option(val++, count--), null); 
 
    } while (count); 
 
})(myselect[i], startYear, count); 
 
}
<form id="someform"> 
 
    <select name="year"></select> 
 
    <select name="year1"></select> 
 
    <select name="year2"></select> 
 
</form>

+0

Kannst du das Beispiel mit 'multiple dropdowns' zeigen, wie Nick gefragt hat? – skobaljic

+0

@skobaljic Siehst du mehrere Drop-downs im OP-Code? –

+0

Nun, das ist das Endziel, ich habe nur versucht, den ersten Schritt aus dem Weg zu bekommen. –

2

getElementsByName gibt einen NodeList, nicht ein einziges Element. Deshalb müssen Sie den benötigten Index "[0]" zu der "Select" -Var innerhalb der Schleife hinzufügen. Auf diese Weise:

select[0].add(new Option(val++, count--), null); 
Verwandte Themen