/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Formfields: Hvordan vælger man focus?
Fra : AllanE


Dato : 09-05-02 18:44

Kan man vælge at et bestemt input-felt på en side, skal være
markeret (i fokus) når siden hentes, så brugeren umiddelbart kan
begynde at skrive i det? Altså uden at skulle klikke på feltet
først?

På forhånd tak

AllanE

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Kasper Kyndsberg (09-05-2002)
Kommentar
Fra : Kasper Kyndsberg


Dato : 09-05-02 18:59

"AllanE" <elsted@XNoSpam.postkasse.dk> skrev
> Kan man vælge at et bestemt input-felt på en side, skal være
> markeret (i fokus) når siden hentes, så brugeren umiddelbart kan
> begynde at skrive i det? Altså uden at skulle klikke på feltet
> først?

Prøv at kigge på sourcen til <http://www.google.com/> - det skulle der vidst
ikke være så mange ben i :)

[...]
<script type="text/JavaScript">
function sf(){document.f.q.focus();}
</script>

</head>
<body onLoad=sf()>
<form name="f">
<input type="text" name="q">
</form>

[...]

I funktionen er "f" navnet på formen, og "q" er navnet på inputfeltet

--
/Kasper
http://www.kyndsberg.dk



Allan Vebel (09-05-2002)
Kommentar
Fra : Allan Vebel


Dato : 09-05-02 20:50

Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:

> <script type="text/JavaScript">
> function sf(){document.f.q.focus();}
> </script>
>
> </head>
> <body onLoad=sf()>
> <form name="f">
> <input type="text" name="q">
> </form>

Eller den mere simple:

<body onLoad="document.f.q.focus()">

Hvorfor kalder du et script når du kan gøre det direkte?

Det smarte med at kalde et script er at det kan genbruges andre steder på
siden, men dette kan kun bruges én gang da der kun kan være fokus ét sted.

--
Allan


Kasper Kyndsberg (09-05-2002)
Kommentar
Fra : Kasper Kyndsberg


Dato : 09-05-02 21:06

"Allan Vebel" <nospam@vebel.dk> skrev
> Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:
[...]
> > <body onLoad=sf()>
[...]
> Eller den mere simple:
>
> <body onLoad="document.f.q.focus()">
>
> Hvorfor kalder du et script når du kan gøre det direkte?
[...]

Tja, 2 ting:

1. Jeg ville vise, hvordan man "stjæler". Google har sat det (næsten)
nøjagtigt op på den måde

2. Jeg ved ikke særlig meget om JavaScript.
Dog er jeg sikker på, at foruden to overflødige linier (dekl. af
javascriptblokken) så virker eksemplet præcist som det skal uden nogen
performance problemer eller potentielle fejl.

--
/Kasper
http://www.kyndsberg.dk



Allan Vebel (09-05-2002)
Kommentar
Fra : Allan Vebel


Dato : 09-05-02 21:30

Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:

> 1. Jeg ville vise, hvordan man "stjæler". Google har sat det (næsten)
> nøjagtigt op på den måde

Du sagde ikke noget om hvor du havde fundet det - og det er jo ikke
sikkert at Google har lavet det optimale.

> Dog er jeg sikker på, at foruden to overflødige linier (dekl. af
> javascriptblokken) så virker eksemplet præcist som det skal uden nogen
> performance problemer eller potentielle fejl.

Jo, det virker - jeg ville bare præsentere en nemmere måde - og hvorfor!

--
Allan


Kasper Kyndsberg (09-05-2002)
Kommentar
Fra : Kasper Kyndsberg


Dato : 09-05-02 22:46

"Allan Vebel" <nospam@vebel.dk> skrev
> Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:
>
> > 1. Jeg ville vise, hvordan man "stjæler". Google har sat det (næsten)
> > nøjagtigt op på den måde
>
> Du sagde ikke noget om hvor du havde fundet det - og det er jo ikke
> sikkert at Google har lavet det optimale.
[SNIP]

1. Jeg antydede det, da jeg skrev:

| Prøv at kigge på sourcen til <http://www.google.com/> - det skulle der
vidst
| ikke være så mange ben i :)

Jeg synes ikke denne diskution repræsenterer nogen nævneværdig værdi. Om
AllanE gør det på din eller min måde gør ingen forskel. Hvis jeg har lavet
en fejl, skal du naturligvis rette den, eller hvis mine råd er dårlige eller
hvis jeg benytter tvivlsomme metoder skal der rettes op på dette for såvel
spørgerens som min skyld - det synes dog ikke at være tilfældet i denne sag.

--
/Kasper
http://www.kyndsberg.dk



Jakob Andersen (09-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 09-05-02 23:28

"Kasper Kyndsberg" <nospam@kyndsberg.dk> wrote in message
news:3cdaef26$0$18622$edfadb0f@dspool01.news.tele.dk...
> Jeg synes ikke denne diskution repræsenterer nogen nævneværdig værdi.

Det syntes jeg, der bliver bragt alternativer frem.

> Om
> AllanE gør det på din eller min måde gør ingen forskel.

Hvis jeg skal være meget kritisk gør det faktisk en forskel, din løsning:

<script type="text/JavaScript">
function sf(){document.f.q.focus();}
</script>

Vil i browsere der ikke forstår javascript resultere i at det der står inde
i scriptblokken vil blive printet hvorimod et script hvor funktionaliteten
er placeret i en eventhandler blot ignoreres. Man kan dog stadig benytte din
metode men det vil kræve følgende tilretning:

<script type="text/JavaScript">
<!--
function sf(){document.f.q.focus();}
// -->
</script>

hvor at scriptindholdet vil blive set som en kommentar i browsere der ikke
forstår javascript.

> Hvis jeg har lavet
> en fejl, skal du naturligvis rette den, eller hvis mine råd er dårlige
eller
> hvis jeg benytter tvivlsomme metoder skal der rettes op på dette for såvel
> spørgerens som min skyld - det synes dog ikke at være tilfældet i denne
sag.

Jeg syntes noget af det mest udbytterige ved diskussioner på usenet er at
man finder ud af at der er flere måder at gøre tingene på f.eks. kunne et
spørgsmål være hvordan man gør tekst fed i HTML/CSS, til dette er der flere
svar som har hver sin berretigelse i forskellige situationer, derfor skal
alle tre helst frem i lyset.

--
Jakob Andersen



Rune Glerup (10-05-2002)
Kommentar
Fra : Rune Glerup


Dato : 10-05-02 09:49

Kasper Kyndsberg skrev:

> Jeg synes ikke denne diskution repræsenterer nogen nævneværdig værdi. Om
> AllanE gør det på din eller min måde gør ingen forskel.

Det er rigtigt, men der er nogen programmeringsteknisk i det: man laver
normalt ikke en funktion, der kun kan bruges i ét enkelt tilfælde -
medmindre man skal gøre det en masse gange.

Her skal man kun gøre det én gang, altså vælger man nok den direkte
løsning.
Skulle man eksempelvis flytte fokus til flere forskellige elementer
afhængigt af nogle hændelser, kunne med med fordel lave en funktion, som
man kunne bruge i alle tilfældene i stedet for at gøre det direkte hver
gang.

--
/Rune
w|http://kaboom.dk/

"Again, we remind you that frames are on their way out anyway."

Allan Vebel (10-05-2002)
Kommentar
Fra : Allan Vebel


Dato : 10-05-02 23:56

Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:

> Jeg synes ikke denne diskution repræsenterer nogen nævneværdig værdi.

Debat er debat - og det er jo fint at få belyst forskellige aspekter af det,
som det også fremgår at andre indlæg.

> Hvis jeg har lavet en fejl, skal du naturligvis rette den

Der er flere måder at gøre tingene på - det ved du - og jeg kom blot med min
kommentar til det - helt uden at antyde at der var fejl i din kode - den fungerer
fint.

> hvis mine råd er dårlige eller hvis jeg benytter tvivlsomme metoder

Tag det helt roligt, Kasper - du virker som en lille dreng der er blevet irettesat
for første gang Det var slet ikke meningen med mit indlæg - kun at give et
alternativt forslag.

--
Allan



Kasper Kyndsberg (11-05-2002)
Kommentar
Fra : Kasper Kyndsberg


Dato : 11-05-02 17:38

"Allan Vebel" <nospam@vebel.dk> skrev
> Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:
>
> > Jeg synes ikke denne diskution repræsenterer nogen nævneværdig værdi.
>
> Debat er debat - og det er jo fint at få belyst forskellige aspekter af
det,
> som det også fremgår at andre indlæg.

[SNIP]

Jeg beklager mine udfald. I mine tanker handlede diskussionen om at låne fra
andre sider og jeg så det andet som OT. Det er naturligvis ikke korrekt.
Spørgere ville vide, hvordan man satte et formfelt i fokus.

> > hvis mine råd er dårlige eller hvis jeg benytter tvivlsomme metoder

> Tag det helt roligt, Kasper - du virker som en lille dreng der er blevet
irettesat
> for første gang

Lad det nu ikke komme dertil - så grælt er det heller ikke. Som sagt skal du
og andre være hjertens velkommen til at irettesætte når nu jeg anviser en
metode der ikke er optimal.

--
/Kasper
http://www.kyndsberg.dk



Allan Vebel (12-05-2002)
Kommentar
Fra : Allan Vebel


Dato : 12-05-02 00:13

Kasper Kyndsberg <nospam@kyndsberg.dk> skrev:

> skal du og andre være hjertens velkommen til at irettesætte når nu
> jeg anviser en metode der ikke er optimal.

Jeg irettesætter ikke nogen - og slet ikke dig: Jeg kommer med forslag
til hvordan tingene kan gøres på den nemmeste måde.

Når jeg ser er nemmere måde at gøre det samme på, så...

--
Allan


Jakob Andersen (09-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 09-05-02 22:38

"Allan Vebel" <nospam@vebel.dk> wrote in message
news:3rAC8.71$aM6.2299@news.get2net.dk...
> Eller den mere simple:
> <body onLoad="document.f.q.focus()">

Eller den mere genbrugsvenlige der sætter fokus på første felt i første
form på siden:

<body onload="document.forms[0].elements[0].focus();">

--
Jakob Andersen



AllanE (10-05-2002)
Kommentar
Fra : AllanE


Dato : 10-05-02 11:07

"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:abeq56$2enh$1@news.cybercity.dk...
>
> Eller den mere genbrugsvenlige der sætter fokus på første felt i
første
> form på siden:
>
> <body onload="document.forms[0].elements[0].focus();">


Det var da egentligt smart!

Kan man udvide funktionen, så man i onLoad kalder en JavaScript-function,
der gør det muligt i selve koden (ikke BODY-taget) at vælge hvilket
INPUT-felt der skal være fokus på? Altså, så man knytter et tag til
INPUT-feltet der fortæller at dette skal have fokus? Kan det lade sig gøre
uden at bruge INPUT-feltets navn men et tag i stedet...måske et ID (ellers
skal al min kode nemlig laves om)?

Den må naturligvis ikke fejle, hvis der ikke er et INPUT-felt med tag'et.


Hvad siger I?


-AllanE



Rune Glerup (10-05-2002)
Kommentar
Fra : Rune Glerup


Dato : 10-05-02 14:03

AllanE skrev:

> Kan man udvide funktionen, så man i onLoad kalder en JavaScript-function,
> der gør det muligt i selve koden (ikke BODY-taget) at vælge hvilket
> INPUT-felt der skal være fokus på?

<!-- [...] -->
<script type="text/javascript">
window.onload = new
Function("if(document.getElementById('getThisElement'))document.getElemen
tById('getThisElement').focus();");
</script>
</head>

<body>
<input id="getThisElement" type="text">
<!-- [...] -->

Teksten inden for <script></script> er én linje.

--
/Rune
w|http://kaboom.dk/

"Again, we remind you that frames are on their way out anyway."

AllanE (10-05-2002)
Kommentar
Fra : AllanE


Dato : 10-05-02 15:37

"Rune Glerup" <usenet@kaboom.dk> skrev i en meddelelse
news:MPG.1745e358416795e998972a@sunsite.dk...
> <!-- [...] -->
> <script type="text/javascript">
> window.onload = new
> Function("if(document.getElementById('getThisElement'))document.getElemen
> tById('getThisElement').focus();");
> </script>
> </head>
>
> <body>
> <input id="getThisElement" type="text">
> <!-- [...] -->
>
> Teksten inden for <script></script> er én linje.
>


PERFEKT! Det virker!

Nu er jeg ingen haj til JavaScript (for at sige det mildt , så er der en
der kan vise hvordan man udvider dette script, så man vha. en else sætning
kører linjen document.forms[0].elements[0].focus();?

På forhånd tak.

AllanE



Rune Glerup (11-05-2002)
Kommentar
Fra : Rune Glerup


Dato : 11-05-02 13:02

AllanE skrev:

> Nu er jeg ingen haj til JavaScript (for at sige det mildt , så er der en
> der kan vise hvordan man udvider dette script, så man vha. en else sætning
> kører linjen document.forms[0].elements[0].focus();?

Du mener, hvis feltet med id="getThisElement" ikke eksisterer?

<!-- [...] -->
<script type="text/javascript">
window.onload = new
Function("if(document.getElementById('getThisElement')){document.getEleme
ntById('getThisElement').focus()}else
if(document.forms[0].elements[0]){document.forms[0].elements[0].focus()}"
);
</script>
</head>

<body>
<input id="getThisElement" type="text">
<!-- [...] -->

Teksten inden for <script></script> er stadig én linje.

--
/Rune
w|http://kaboom.dk/

"Again, we remind you that frames are on their way out anyway."

Allan Vebel (11-05-2002)
Kommentar
Fra : Allan Vebel


Dato : 11-05-02 00:12

Jakob Andersen <jakob@effectus.dk> skrev:

>> <body onLoad="document.f.q.focus()">
>
> Eller den mere genbrugsvenlige der sætter fokus på første felt i
> første form på siden:
>
> <body onload="document.forms[0].elements[0].focus();">

Ja, hvis det er det man ønsker. Jeg har ofte været ude for at der ønskes
fokus i et bestemt felt - og hvis dette felt er placeret et bestemt sted med
css er det rart at være specifik. Derfor henviser jeg altid præcis til det
specifiserede felt.

--
Allan


Søg
Reklame
Statistik
Spørgsmål : 177511
Tips : 31968
Nyheder : 719565
Indlæg : 6408596
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste