2009-06-11 2 views
2

Also verwende ich ein HTML-Auswahlfeld mit einer Liste von Ländern und eine Schaltfläche, um ein kleines Fenster mit mehr Details für das ausgewählte Element in der HTML-Auswahlfeld zu öffnen.Mein HTML Dropdown-Menü funktioniert nicht in IE6

Hier ist, wie ich das tue (Ich entschuldige mich hier im Voraus für jede noobishness, ich bin noch ziemlich neu in Javascript):

//in header 
<script type="text/javascript"> 
function popUp() 
{ 
    countryName = document.getElementById("countrylist").value; 
    document.write(countryName); 
    dest = "countries/" + countryName + ".html"; 
    window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312"); 
} 
</script> 

<form id="countryform"> 
<select id="countrylist"> 
     <!--List of countries removed for brevity--> 
</select> 
<input type="button" name="countryBtn" value="Submit Query" onClick="popUp();"> 
</form> 

Dies funktioniert in Firefox in Ordnung, aber nicht in IE6. Jede Hilfe wäre willkommen!

UPDATE: Also versuchte ich die ersten beiden Ansätze unten, die alternative Pop-up-Funktion in jedem Browser nicht funktioniert hat, und die document.getElementById Linie ersetzt nichts ändern, in Firefox funktioniert immer noch gut, nicht in IE.

Antwort

0

Hier ist, wie ich es fest:

function popUp() 
{ 
    var c = document.getElementById("countrylist"); 
    var countryName = c.options[c.selectedIndex].text; 
    var dest = "countries/" + countryName + ".html"; 
    window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312"); 
} 

Dies sowohl in IE6 und FF3 funktioniert.

Danke für die Hilfe sowieso!

6
document.getElementById("countrylist").value; 

muss sein:

document.getElementById("countrylist")[document.getElementById("countrylist").selectedIndex].value; 
+0

Guter Anruf! . –

0

Das Problem, das Sie haben, werden mit dem immer der Name des Landes ist. Ich würde Ihre Popup-Funktion ändern:

function popUp() { 

    var e = document.getElementById("countrylist"); 

    var countryName = e.options[e.selectedIndex].value; 

    dest = "countries/" + countryName + ".html"; 
    window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312"); 

}