/ 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
Tryk ENTER i et form-felt ignorerer onchan~
Fra : Jesper Rønn-Jensen


Dato : 16-12-04 15:21

Hej nyhedsgruppe. Måske kan i lede mig på sporet her.

Jeg har en almindelig form med en action og en onsubmit event sat til
at kalde et javascript valideringsscript.

Formen består af en række tekstfelter og en submit-knap. På felterne
har jeg sat et kald onchange til at formatere indholdet af feltet (fx
en dato).

Problemet er nu, at når jeg står i feltet og trykker ENTER, så
submitter formen UDEN at onchange er aktiveret. Onsubmit kører også
fint, men det er pænt irriterende, at jeg mangler onchange.

Mit spørgsmål er så:
* hvordan aktiverer jeg onchange funktionaliteten ved tryk på ENTER,
så formen samtidig submittes.

* eller, kan jeg kalde onchange fra onsubmit funktionen?

Håber I har nogle gode ideer til, hvordan jeg kan gribe det her an...
På forhånd tak,
Jesper Rønn-Jensen


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


Dato : 16-12-04 15:32

Jesper Rønn-Jensen explained on 16-12-2004 :

> Mit spørgsmål er så:
> * hvordan aktiverer jeg onchange funktionaliteten ved tryk på ENTER,
> så formen samtidig submittes.

> Håber I har nogle gode ideer til, hvordan jeg kan gribe det her an...

Kan du ikke bare bruge onKeypress (eller hvad det nu er den hedder)
måske onKeydown eller onKeyup

--
Benny


Erik Ginnerskov (16-12-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 16-12-04 23:21

Jesper Rønn-Jensen wrote:
> Problemet er nu, at når jeg står i feltet og trykker ENTER, så
> submitter formen UDEN at onchange er aktiveret. Onsubmit kører også
> fint, men det er pænt irriterende, at jeg mangler onchange.

Hvis du 'står i' et <input type="text"> og trykker [Enter], svarer det til
at klikke på [Submit]. Du er nødt til at forlade dit input på anden måde :
Brug [Tab] eller klik et andet sted på siden.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Jesper Rønn-Jensen (17-12-2004)
Kommentar
Fra : Jesper Rønn-Jensen


Dato : 17-12-04 10:31

Tak for feedback.
>Hvis du 'står i' et <input type="text"> og trykker [Enter], svarer
det til
>at klikke på [Submit].
Det giver mig jo nogle udfordringer. Jeg vil stadig gerne køre
funktionen på onchange ved tryk på [Enter].
>Kan du ikke bare bruge onKeypress (eller hvad det nu er den hedder)
>måske onKeydown eller onKeyup
Jo så skal jeg nok gøre noget i stil med følgende:
* onkeypress på tekst feltet sættes til at lytte på [enter]. Når
der trykkes [enter] sætter jeg en global variabel objRef til feltets
object.
* Når onsubmit funktionen dernæst aktiveres (ved tryk på [Enter]),
så vil jeg spørge på objRef og køre onchange funktionen på den.
* Dette skal vel kun ske på felter hvor [Enter] submitter formen.

Submitter tryk på [Enter] altid en form ? Hvad hvis fokus er på fx en
checkbox?

Tak for jeres input.

Jesper


Jesper Rønn-Jensen (17-12-2004)
Kommentar
Fra : Jesper Rønn-Jensen


Dato : 17-12-04 15:21

Update: Til orientering har jeg implementeret som følger:
function autoformatOnEnter(evt){
evt = (evt) ? evt : ( ( event ) ? event : null);
if(evt.keyCode==13){
var obj=getEventObject(evt);
if(obj.onchange) obj.onchange();
}
}

og getEventObject(evt) får fat i form feltet:
function getEventObject(evt)
{
var obj;
evt = (evt) ? evt : ( ( event ) ? event : null);
if(evt.target)
{
obj=evt.target;   //Moz equiv.
dump('start function getEventObject\nMoz event model\nobj:
'+obj.nodeName);
}
else if (evt.srcElement)
{
obj=evt.srcElement;   //IE only
dump('start function getEventObject\nIE event model\nobj:
'+obj.nodeName);
   }
   return obj;
}


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste