Just nu i M3-nätverket
Gå till innehåll

självfokus


Admini

Rekommendera Poster

Hej

I en input type="text" vill jag ha focusen i den.

T.ex.

<input type="text" javascript:focus.this();>

 

finns det nåt enkelt sätt att göra det på?

Tack

 

Länk till kommentar
Dela på andra webbplatser

- Lägg först till ett id-fält i din input samt ta bort scriptet däri

 

<input ID="StartField" type="text">

 

- I BODY-taggen, lägg till följande:

 

<BODY ONLOAD="document.getElementById('StartField').focus();">

 

Klart!

 

Länk till kommentar
Dela på andra webbplatser

Jag kan inte använda body-taggen just nu.

Men kan jag göra så här i en function?

 

document.form1.getElementById(eval(kol_+i+)).focus

 

*i* ökar varje gång jag kör funktionen.

 

Nu får jag felmeddelande

"kol_2" är odefinierad

 

[inlägget ändrat 2004-09-21 15:20:10 av Admini]

Länk till kommentar
Dela på andra webbplatser

Hej

Nu får jag inget fel men fokus blir inte rätt satt.

functionen blir aktiverad av onBlur i föregående input-tagg.

Jag vill genom att trycka på Tabb-tabgenten skapa och flytta fokusen till nästa.

 

Tabb gör ju att focus flyttas till nästa existerande element.

 

Jag klarade det själv:

Jag skriver den 2 ggr i rad

document.getElementById('kol_'+i).focus();
document.getElementById('kol_'+i).focus();

[inlägget ändrat 2004-09-21 15:37:08 av Admini]

Länk till kommentar
Dela på andra webbplatser

Jaså var det det du ville göra. Då är det ju bara att sätta tabindex på elementen i den ordning du vill att man ska föras vidare:

 

<input TABINDEX="1">

<input TABINDEX="3">

<input TABINDEX="2">

 

Länk till kommentar
Dela på andra webbplatser

Nej det var i.o.f.s inte det som var tanken men det kommer till användning. Tack!

 

Jag skapar elementen så här:

eval(kol).innerHTML += "<div id='kol_"+i+"'><input type='text' class='text2' size='6' name='kol_"+i+"' onblur='CreateMenue();'></div>"

 

Sedan vill jag positionera dem så här:

document.getElementById("kol_"+i).style.pixelLeft = leftPos +100;
document.getElementById("kol_"+i).style.pixelTop = 47 ;

 

leftPos är lika med = document.getElementById("kol_"+(i-1)).style.pixelLeft

 

Men de staplas över varann istället för bredvidd

 

Länk till kommentar
Dela på andra webbplatser

Nu förstod jag inte om det sista var en förklaring av vad du gjort, eller om det var något som inte fungerade som det skulle.

 

Liten kommentar: Använd left istället för pixelLeft, så left är standard och pixelLeft MS-specifikt.

 

Länk till kommentar
Dela på andra webbplatser

LOL

Nej det VAR en fråga jag glömde ställa.

Det fungerar inte som det ska!

 

Även när jag tar bort följande helt

document.getElementById("kol_"+i).style.pixelLeft = leftPos +100;
document.getElementById("kol_"+i).style.pixelTop = 47 ;

 

Ser du vad det är för fel?

 

Länk till kommentar
Dela på andra webbplatser

Använder du absolute eller relativ positionering? Hur ser klassen ut?

 

TILLÄGG: Måste tyvärr iväg nu, återkommer imorgon om ingen annan hoppar in och hjälper dig.

 

 

[inlägget ändrat 2004-09-21 16:33:59 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Så ser det ut

document.getElementById("kol_"+i).style.Left = i+200;
document.getElementById("kol_"+i).style.Top = 47 ;
document.getElementById("kol_"+i).style.visibility ='visible';
document.getElementById("kol_"+i).style.position ='relative';

 

Var ska jag ha klassen?

 

Länk till kommentar
Dela på andra webbplatser

Menade css-klassen, bara undrade om du hade satt positioneringstyp i den eller inte, men glöm det, jag ser nu hur du gjort. Löser du det inte så kan du maila mig sidan så kan jag lättare testa av vad som är fel. Måste iväg nu, hörs imorrn.

 

Länk till kommentar
Dela på andra webbplatser

Kan man göra så här:

<div id='kol_"+i+"' style='position:relative; z-index:5; left:"+i+"100; top:47;  visibility:visible'>

 

Alltså skriva classen inne i DIV-taggen?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...