[js] - selection ausfgewählte option geht in FF, aber nicht im IE



  • jaa, wer das topic namentlich deuten kann, der weiß zumindest schonmal, was ich tun möchte.
    Ich habe eine selection und rufe dort im onClick ein script auf das mir das ausgewählte Element zurückliefert. im firefox gehts super, im ie nicht und ich find nicht raus, warum.

    hier mal mein html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Insert title here</title>
    <script language="Javascript" src="erstes.js"></script>
    </head>
    <body>
    <form name="f">
    <select id="auswahl" name="auswahl" size="1" onclick="sendeAnfrage()">
    	<option>Wahl1</option>
    	<option>Wahl2</option>
    	<option>Wahl3</option>
    	<option>Wahl4</option>
    	<option>Wahl5</option>
    </select>
    </form>
    <span id="ausgabe"></span>
    </body>
    </html>
    

    das js soll nun herausfinden, welches element geklickt wurde. ich denkt mir das so:

    var resObject;
    
    try {
    	resObject = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
    	try {
    		resObject = new ActiveXObject("MSXML2.XMLHTTP");
    	} catch (e) {
    		try {
    			resObject = new XMLHttpRequest();			
    		} catch (e) {
    			alert("Konnte kein Request-Objekt erstellen."); 
    		}
    	}
    }
    
    function sendeAnfrage() {
    	var select = document.getElementById("auswahl");
    	var index = select.options.selectedIndex;
    	var auswahl = select.options[index].innerHTML;
    	alert ("Auswahl des Index " + index + " = '" + auswahl +"'");
    	resObject.open('get', 'Auswahl?name=' + auswahl, true);
    	resObject.onreadystatechange = handleResponse;
    	resObject.send(null);
    	document.getElementById("ausgabe").innerHTML = select + 
    			"<br>" + select.options;
    }
    
    function handleResponse() {
    	if (resObject.readyState == 4) {
    		document.getElementById("ausgabe").innerHTML = resObject.responseText;
    	}
    }
    


  • Hallo,

    ich habe weder im FX, noch im IE Probleme mit dem Script. Einzig der IE warnt vor geblockten Inhalten. Und was mich auch ein wenig nervt ist der OnClick -> Das Event wird bereits beim Klick auf die Auswahl aufgerufen und ein Wechsel des Elementes ist somit nicht möglich. Besser fände ich da das Event "OnChange".

    LG, Micha



  • das ja man komisch.. dann isses wohl mein ie der da nervt.



  • Hi,

    was mir noch aufgefallen ist

    document.getElementById("ausgabe").innerHTML = select + 
                "<br>" + select.options;
    

    ... wird so nicht funktionieren. Du versuchst das Objekt "select" in eine HTML-Ausgabe zu bekommen.

    select.options[index].innerHTML
    

    ... wäre da wohl sinnvoller. Ob es eine Funktion für formatierte Ausgabe aller Elemente gibt weiß ich nicht. Ich würde es wohl mit einer Schleife lösen.

    LG, Micha



  • joa, aber da gings nur um ne testausgabe. wollt nur sicher gehen, dass es nicht null ist.


Log in to reply