2017-12-29 14 views
1

Meine onchange-Funktion für diese Formularauswahl führt Onload aber nicht beim Ändern der Auswahl in dem Formular aus. Ich habe versucht, onload und onclick zu verwenden.JavaScript onchange-Funktion führt onload, aber nicht onchange

Ich bin offensichtlich nur in der Debugging-Implementierungsphase und wird es andere Sachen machen, sobald es funktioniert.

HTML:

<select case="sel1" name="Sort1" id="Sort1"> 
    <option value="0">Fred</option> 
    <option value="1">Ginger</option> 
    <option value="2">Judy</option> 
    <option value="3">Gene</option> 
</select> 

JavaScript:

window.onload = function() { 
    document.getElementById('Sort1').onchange = ChgSort(); 
} 

function ChgSort() { 
    alert(document.getElementById('Sort1').value); 
} 

Wenn ich die Seite laden, erhalte ich die Benachrichtigung Popup mit dem aktuellen Auswahlwert von 0. Aber wenn ich auf die Schaltfläche Wählen Sie das Feld und ändern Sie die Option nichts passiert.

Ich bin sicher, und die Hoffnung, es ist etwas albern und dumm und ich habe gerade gestarrt und Debuggen die gleiche Funktion zu lang ...

Hilfe!

Antwort

3

Sie müssen dies auf der Linie dieser

 document.getElementById('Sort1').onchange = ChgSort; 

 document.getElementById('Sort1').onchange = ChgSort(); 

ändern sollte Onchange Funktion sein nicht der zurückgegebene Wert Blick auf das Beispiel unten

window.onload = function() { 
 
    document.getElementById('Sort1').onchange = ChgSort; 
 
} 
 

 
function ChgSort() { 
 
    alert(document.getElementById('Sort1').value); 
 
}
<select case="sel1" name="Sort1" id="Sort1"> 
 
    <option value="0">Fred</option> 
 
    <option value="1">Ginger</option> 
 
    <option value="2">Judy</option> 
 
    <option value="3">Gene</option> 
 
</select>

+0

arbeiten Haben Sie es nicht hassen, wenn das passiert ??? Ich wusste, dass es etwas Dummes war, das ich vermisst hatte, nur starrte und starrte auf den Code. –

+0

Ein Profi kann den gleichen Fehler machen, deshalb codieren wir gerne den Fehler und haben die Möglichkeit, ihn selbst als Champion zu reparieren: D –

0

Ihr Javascript:

window.onload = function() { 
    document.getElementById('Sort1').onchange = ChgSort(); 
} 

Die window.onload geändert werden sollte, um window.onchange und es sollte