webForumDet fria alternativet

JS strul i IE

9 svar · 563 visningar · startad av rille77

rille77Medlem sedan feb. 200476 inlägg
#1

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 +'&region='+ Region +'&city='+ City +'&searchWord='+ SearchWord +'&anstallning=' + Anstallning +'&sprak='+ Sprak;
}
metalboyMedlem sedan jan. 2005953 inlägg
#2

Får du något felmeddelande?

rille77Medlem sedan feb. 200476 inlägg
#3

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

effataMedlem sedan apr. 2008137 inlägg
#4

Har du IE script debugger? Om inte, slå på den och se var scriptet falerar.
http://blogs.msdn.com/ie/archive/2004/10/26/247912.aspx

rille77Medlem sedan feb. 200476 inlägg
#5

var Country = document.getElementById('country').options[document.getElementById('country').selectedIndex].value;
is null or not an object.

Med andra ord samma sak som i Opera

metalboyMedlem sedan jan. 2005953 inlägg
#6

Hur ser din HTML ut då? Jag ser inget fel på den raden...

effataMedlem sedan apr. 2008137 inlägg
#7

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;

rille77Medlem sedan feb. 200476 inlägg
#8

Det lyckades lösa sig till slut.

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.

effataMedlem sedan apr. 2008137 inlägg
#9

Oj, där ser man. Det visste jag faktiskt inte. Bra att veta för framtiden.

PalleMedlem sedan apr. 20003 174 inlägg
127 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)