webForumDet fria alternativet

.focus-fel i IE6

4 svar · 156 visningar · startad av FredrikT

FredrikTMedlem sedan jan. 20025 inlägg
#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?

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

------------------
/ J

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

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

------------------
/ J

FredrikTMedlem 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?

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)