|
| 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;
}
| |
|
|