2017-12-13 3 views
0

Jungs!JavaScript OnChange feuert nicht nur in Internet Explorer

Ich habe versucht, dies für eine Weile gelöst zu bekommen, und ich bin wirklich fest, so hoffe auf Ihre Hilfe. Dieser Code funktioniert in Chrome und Opera, funktioniert aber nicht in IE11. Ich weiß nichts über andere Versionen von IE. IE JavaScript ist aktiviert. Bitte nehmen Sie sich einen Blick, und mir sagen, dass ich falsch

<script type="text/javascript"> 
    window.onload = function(e){ 

     var list = document.getElementsByClassName('example'); 
     switcher_combo = list[0]; 
     switcher_combo.disabled = true; 
     switcher_combo.addEventListener("change", myFunction); 

     function myFunction() { 
      alert("Changed!") 
     } 
    } 

    function SetSel(value) 
    { 
     switcher_combo.value = value; 
     switcher_combo.selected = true; 
     switcher_combo.dispatchEvent(new Event('change')); 
     return false; 
    } 
</script> 

     <select id="example1" class='example' name='emaple2'> 
     <option value="1">Option one</option> 
     <option value="2">Option two</option> 
     <option value="3">Option three</option> 
     </select> 

     <BR> 
     <a href="javascript:SetSel(2);">Change Combo to #2</a> 
</body> 

+0

Welco Wenn ich Stack Overflow verwende, würde es viel mehr helfen, wenn Sie den Fehler hinzufügen, den Sie erhalten (drücken Sie F12 für Entwicklerwerkzeuge im Browser). Ich denke, dass die Antwort von Malaji gemäß der [Dokumentation] funktionieren sollte (https://developer.mozilla.org/en-US/docs/Web/API/Document/createEvent). Wenn dies nicht der Fall ist, geben Sie bitte Code und Fehler an, indem Sie Ihre Frage aktualisieren, anstatt nur anzugeben, dass es nicht funktioniert. – HMR

+0

Seltsam, dass laut Dokumentation sowohl [dispatchEvent] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent#Browser_Compatibility) und [getElementsByClassName] (https: //developer.mozilla .org/de-DE/docs/Web/API/Dokument/getElementsByClassName # Browser_compatibility) werden ab IE 9 und höher unterstützt. – HMR

Antwort

1

Doppelte Frage so mache: dispatchEvent not working in IE11

ich das gleiche Problem hatte gerade, aber die folgenden scheint in IE11 zu arbeiten:

var event = document.createEvent("Event"); 
event.initEvent("submit", false, true); 
// args: string type, boolean bubbles, boolean cancelable 
element.dispatchEvent(event); 
+0

Dies funktioniert überhaupt nicht :( – Ben

+0

Works !!!! Vielen Dank! – Ben

Verwandte Themen