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

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Problemer med focus() i en funktion
Fra : Ukendt


Dato : 18-12-04 17:02

Hej

Jeg sidder og bøvler med lidt javascript.

I virkeligheden er der tale om en art CMS lavet med ASP.
For at prøve noget nyt forsøger jeg mig med flere formularer på samme side,
der så hver i sær skal tage sig af en begrænset del af opdateringen af
informationer.
Samtidig vil jeg gerne give mulighed for at brugeren hurtigt kan komme til
at rette uden først at skulle over på en ny side. Derfor forsøger jeg mig
også med noget DHTML til at skifte mellem hhv. "det pæne interface" og
formularfelter.

Jeg har et par tabelceller der ser ca. således ud (al ASP er pillet ud):


<form action="ret.asp" method="post">
<td id="Cfornavn" style="display:block; cursor:hand"
onMouseDown="skjulvis('Cfornavn','Cfornavnret','fornavn');">
Fornavn: Anders
</td>
<td id="Cfornavnret" style="display:none">
<input type="text" id="fornavn" name="fornavn" value="Anders">
<input type="submit" value="Rediger">
<input type="button"
onClick="skjulvis('Cfornavnret','Cfornavn','fornavn');" value="Fortryd">
</td>
</form>


(Nej, det er ikke pokkers validt at smide <form> ind midt i en tabel - I
know)

Sagen er at når jeg klikker på celle1 (Cfornavn) skal denne blive usynlig og
celle2 (Cfornavnret) skal blive synlig - og dette virker rigtig mageløst.
Mit problem er at jeg samtidig gerne vil sætte fokus i feltet "fornavn" i
celle2 -og det går bare SLET ikke ;-(

Min funktion ser således ud:

function skjulvis(skjul,vis,felt) {
document.getElementById(skjul).style.display = 'none';
document.getElementById(vis).style.display = 'block';
document.all.fornavn.select();
}

Jeg får hverken fejl eller noget!
Læg i øvrigt mærke til at jeg endnu ikke har gjort mig forhåbninger om at få
min fokusering til at være dynamisk i forhold til parameteren "felt", men
blot forsøger at tilgå "fornavn".
På sigt er det naturligvis meningen at flere forskellige områder på min side
(dvs. ANDRE <form>-områder kan bruge den samme funktion.

Det rigtig spøjse er at tilføjer jeg en alert sidst i min funktion så VIRKER
DET!!

function skjulvis(skjul,vis,felt) {
document.getElementById(skjul).style.display = 'none';
document.getElementById(vis).style.display = 'block';
document.all.fornavn.select();
alert("What ever");
}

Men det er jo ikke så fedt at få en alert smækket i hovedet hver gang

Er der nogen der kan give mit et svar på hvor det går galt?? Jeg er pænt
forvirret!

mvh
Anders



 
 
Jens Gyldenkærne Cla~ (18-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-12-04 17:38

Anders Nielsen skrev:

> (Nej, det er ikke pokkers validt at smide <form> ind midt i en
> tabel - I know)

Hvorfor gør du det så?

Du kan placere formen uden om tabellen eller inde i en tabelcelle
helt legalt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Ukendt (18-12-2004)
Kommentar
Fra : Ukendt


Dato : 18-12-04 18:00

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
>
> Hvorfor gør du det så?
>
> Du kan placere formen uden om tabellen eller inde i en tabelcelle
> helt legalt.
> --

Det skyldes såmænd blot at jeg regnede med at snuppe den del i den sidste
afpudsning af siden.
Jeg formoder ikke at dette gør hverken fra eller til i den aktuelle
problemstilling.

mvh
Anders



Jens Gyldenkærne Cla~ (18-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-12-04 20:06

Anders Nielsen skrev:

> Det skyldes såmænd blot at jeg regnede med at snuppe den del i
> den sidste afpudsning af siden.
> Jeg formoder ikke at dette gør hverken fra eller til i den
> aktuelle problemstilling.

Måske ikke - men jeg ville nu rette det alligevel. Tænk nu hvis..


Anyway - har du et link til siden? Det er noget lettere at hjælpe
hvis man kan se siden online.

En enkelt kommentar til din funktion. Du blander ny og gammel
javascriptkode (document.getElementById vs. document.all) - det er
normalt ikke en god ide.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Anders Nielsen (20-12-2004)
Kommentar
Fra : Anders Nielsen


Dato : 20-12-04 09:35


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns95C3CC85E6B5Ejcdmfdk@gyrosmod.cybercity.dk...
> Anders Nielsen skrev:
>
> > Det skyldes såmænd blot at jeg regnede med at snuppe den del i
> > den sidste afpudsning af siden.
> > Jeg formoder ikke at dette gør hverken fra eller til i den
> > aktuelle problemstilling.
>
> Måske ikke - men jeg ville nu rette det alligevel. Tænk nu hvis..
>
Det er hermed prøvet... Desværre uden held.


>
> Anyway - har du et link til siden? Det er noget lettere at hjælpe
> hvis man kan se siden online.
>
http://www.casablanca-models.com/test/focus.asp
På ovenstående virker focus() ikke.

http://www.casablanca-models.com/test/focus2.asp
På denne virker skidtet, men kun fordi der er en umage alert() som det
sidste i scriptet.


> En enkelt kommentar til din funktion. Du blander ny og gammel
> javascriptkode (document.getElementById vs. document.all) - det er
> normalt ikke en god ide.
Ok - Det bringer mig så til det næste problem:
Hvordan jeg kan få koden til at forstå at den skal bruge
parameteren/variablen felt og ikke et element på siden der hedder "felt".??

function test(felt) {
document.all.felt.focus();
}

mvh
Anders



Benny Nissen (20-12-2004)
Kommentar
Fra : Benny Nissen


Dato : 20-12-04 09:57

Anders Nielsen was thinking very hard :

>> Anyway - har du et link til siden? Det er noget lettere at hjælpe
>> hvis man kan se siden online.
>>
> http://www.casablanca-models.com/test/focus.asp
> På ovenstående virker focus() ikke.

Jo den gør.

> http://www.casablanca-models.com/test/focus2.asp
> På denne virker skidtet, men kun fordi der er en umage alert() som det
> sidste i scriptet.

Samme funktion som ovenstående, blot med en alert tilføjet.

Bruger FF

.... men, man kan ikke bruge din side til noget uden javascript. Det
kunne blive et problem for nogen.

--
Benny


Anders Nielsen (20-12-2004)
Kommentar
Fra : Anders Nielsen


Dato : 20-12-04 11:41


"Benny Nissen" <news@bennynissen.dk> wrote in message
news:mn.a2557d4c5e384006.23061@bennynissen.dk...
> ... men, man kan ikke bruge din side til noget uden javascript. Det
> kunne blive et problem for nogen.
>
Det er (heldigvis) ikke noget problem her, da det er en lille udvalgt skare
der skal bruge skidtet.

Tak for dine iagttagelser

mvh
Anders



Jens Gyldenkærne Cla~ (20-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-12-04 11:24

Anders Nielsen skrev:

>> Anyway - har du et link til siden? Det er noget lettere at
>> hjælpe hvis man kan se siden online.
>>
> http://www.casablanca-models.com/test/focus.asp
> På ovenstående virker focus() ikke.

Takker. Det er åbenbart en IE-specialitet ikke at ville reagere
direkte på focus.

Jeg har pillet lidt ved din side og lavet en udgave der virker i
såvel IE som Firefox og Opera.

IE-tricket viste sig at være at sætte this.select() som onfocus-
hændelse på formelementerne. Det betyder så at hele feltteksten er
valgt når focus indtræffer.

Derudover har jeg konverteret til getElementById alle steder,
indlagt et enkelt tjek for understøttelse samt konverteret til
xhtml. Du kan se siden her:
   <http://gyros.dk/usenet/js/form.html>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Anders Nielsen (20-12-2004)
Kommentar
Fra : Anders Nielsen


Dato : 20-12-04 11:39

Du kan se siden her:
> <http://gyros.dk/usenet/js/form.html>
> --

Dét siger jeg dig Jens! Det er bare i orden!!

Jeg takker noget så kraftigt

mvh
Anders



Benny Nissen (18-12-2004)
Kommentar
Fra : Benny Nissen


Dato : 18-12-04 20:07

Anders Nielsen laid this down on his screen :

> function skjulvis(skjul,vis,felt) {
> document.getElementById(skjul).style.display = 'none';
> document.getElementById(vis).style.display = 'block';
> document.all.fornavn.select();
> }

Det er lidt sjovt du i subj. skriver focus(), men i koden bruger
select.
Prøv lige med document.all.fornavn.focus();

--
Benny


Anders Nielsen (20-12-2004)
Kommentar
Fra : Anders Nielsen


Dato : 20-12-04 09:01

> Det er lidt sjovt du i subj. skriver focus(), men i koden bruger
> select.
> Prøv lige med document.all.fornavn.focus();
>

Hej Benny

Ak ja, sådan går det når man midt i at skrive beskeden til NG pludselig
ville prøve med select() i stedet for focus(). - beklager....

Jeg lagde ud med focus() hvilket ikke virkede og prøvede derefter med
select() for at se om det gav større held hvilket det desværre ikke gjorde.

mvh
Anders



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

Månedens bedste
Årets bedste
Sidste års bedste