webForumDet fria alternativet
Logga in / Bli medlem

.focus-fel i IE6

JavaScript

4 svar · 156 visningar · startad av FredrikT

Medlem sedan jan. 20025 inlägg
Trådstart#1

Hej, jag använde följande för att sätta default focus i ett fält när sidan laddas:

function putFocus(formInst, elementInst) {
  if (document.forms.length > 0) {
   document.forms[formInst].elements[elementInst].focus();
  }
 }

Det funkar utmärkt i IE 5 men får fel i IE6:

Error: 'document.forms[...].elements[...]' is null or not an object

Är rätt ny på JavaScript, finns det kanske något bättre script?

Medlem sedan juni 20004 308 inlägg
#2

Välkommen till wF.

Hur anropar du funktionen? Är formInst och elementInst definierade? Annars kan du i body-taggen använda;

<body onLoad="if(document.forms.length>0&&document.forms[0].elements.length>0){ document.forms[0].elements[0].focus(); }">
^-- Allt detta på samma rad.

Medlem sedan jan. 20025 inlägg
#3

Tack,

jag använder nu följande lite enklare funktion i Body onLoad för att sätta fokus i ett specifikt fält:

if (document.forms[0].Subject) document.forms[0].Subject.focus()

Det är väl ungefär samma som du har föreslagit, att först kolla upp om fältet finns.

Medlem sedan juni 20004 308 inlägg
#4

Jopp, men du kollar inte om formuläret finns innan -- låter som det rör sig om en dynamiskt genererad sida så jag vet inte om detta kan förekomma.

Medlem sedan jan. 20025 inlägg
#5

Det stämmer att det är en dynamiskt genererad sida, ibland finns formuläret, ibland inte. Kan du förtydliga forms.length och elements.length lite, rekommenderar du att jag använder dem?

256 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)