Har ett formulär med ett par selectboxar och lite vanliga inputs.
När en selectbox ändras så ska formuläret postas.
Funkar klockrent i FX och Safari men i IE så är det tvärstopp.
Anropet: onchange="SetSelects();"
Koden ser ut så här.
function loopSelected(selObj){
var selectedArray = new Array();
var selObj = selObj;
var i;
var count = 0;
for (i=0; i<selObj.options.length; i++) {
if (selObj.options[i].selected) {
selectedArray[count] = selObj.options[i].value;
count++;
}
}
return selectedArray;
}
function SetSelects(){
var SearchWord = document.getElementById('searchWord').value;
var Country = document.getElementById('country').options[document.getElementById('country').selectedIndex].value;
var Region = document.getElementById('region').options[document.getElementById('region').selectedIndex].value;
var City = document.getElementById('city').options[document.getElementById('city').selectedIndex].value;
var Category = loopSelected(document.getElementById('category'));
var Anstallning = document.getElementById('anstallning').options[document.getElementById('anstallning').selectedIndex].value;
var Sprak = document.getElementById('sprak').options[document.getElementById('sprak').selectedIndex].value;
window.location='index.asp?p=search_job&country='+ Country +'&category='+ Category +'®ion='+ Region +'&city='+ City +'&searchWord='+ SearchWord +'&anstallning=' + Anstallning +'&sprak='+ Sprak;
}
Japp får ett felmeddelande i Opera
message: Statement on line 17: Could not convert undefined or null to object
var Country = (document.getElementById("country")).options[(document.getElementById("country")).selectedIndex].value;
Men selectboxen country har värdet 1 som default, i FX och Safari skickar den med det som den ska
Min gissning är att den inte hittar något DOM-objekt med id country. Annars kan du testa att dela upp den ytterligare och se var det går fel.
var countryElement = document.getElementById('country');
var countryOptions = countryElement.options;
var selectedElement = countryOptions[countryElement.selectedIndex];
var selectedValue = selectedElement.value;
Problemet stavas Internet Explorer.
Man kan ju bli lätt vansinnig på det programmet ibland, tydligen så tolkar det getElementById som så att den ska kolla både på name och id och tar den som kommer först.
Nu var det så att det fanns 2 olika formulärfält som båda hette "country" men hade olika id.