webForumDet fria alternativet

JS strul i IE

JavaScriptur Javascript

9 svar · 563 visningar · startad av rille77

Medlem sedan feb. 200476 inlägg
Frågan#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;
}
Medlem sedan jan. 2005953 inlägg
#2

Får du något felmeddelande?

Medlem 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

Medlem 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

Medlem 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

Medlem sedan jan. 2005953 inlägg
#6

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

Medlem 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;

Medlem 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.

Medlem sedan apr. 2008137 inlägg
#9

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

Medlem sedan apr. 20003 174 inlägg
129 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)