2017-11-26 2 views
0

Ich versuche, einige Optionen mit Ergebnissen aus einem für Zyklus zu füllen, aber ich kann es einfach nicht zum Laufen bringen. Ich rufe die Funktion aus dem Onclick der Auswahl, aber es funktioniert einfach nicht.Auffüllen Wählen Sie mit Javascript

Hier ist eine funktionierende JS Geige ohne die Funktion, aber ich brauche es in einer Funktion zu sein.

http://jsfiddle.net/t8fdh/610/

Und hier ist, was ich versuche zu arbeiten, zu erhalten.

http://jsfiddle.net/t8fdh/612/

function populate() { 
 
    var max = new Date().getFullYear() + 1, 
 
     min = max - 9, 
 
     select = document.getElementById('selectElementId'); 
 

 
    for (var i = min; i <= max; i++) { 
 
     var opt = document.createElement('option'); 
 
     opt.value = i; 
 
     opt.innerHTML = i; 
 
     select.appendChild(opt); 
 
    } 
 
};
<select id="selectElementId" onload="populate()"></select>

+4

Haben Sie sich jemals gefragt, dass '' zu sagen, dass es geladen ist. –

Antwort

1

Warum

mit onload auf dem select Element, versuchen Sie, die Ausführung von populate() Funktion auf der window load mit window.onload = populate();

window.onload = populate(); 
 
function populate() { 
 
var max = new Date().getFullYear() +1; 
 
var min = max - 9; 
 
    select = document.getElementById('selectElementId'); 
 
    
 
\t \t \t for (var i = min; i<=max; i++){ 
 
    \t \t var opt = document.createElement('option'); 
 
    \t \t opt.value = i; 
 
    \t \t opt.innerHTML = i; 
 
    \t \t select.appendChild(opt); 
 
\t \t } 
 
};
<select id="selectElementId" ></select>

+0

Oder noch besser, 'onDOMContentLoaded'. –

+0

@Derek 朕 會 功夫 ja, tatsächlich – M0ns1f

0

Nach https://www.w3schools.com/tags/ev_onload.asp, können Sie nur onload auf den folgenden Tags verwenden:

<body>, <frame>, <frameset>, <iframe>, <img>, <input type="image">, <link>, <script> and <style> 

Sie können Ihre onload auf dem Body-Tag gesetzt und es wird funktionieren :)

Verwandte Themen