/ 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
Hindre submit ved [Enter]
Fra : Erik Ginnerskov


Dato : 01-04-08 23:41

Hej NG

Jeg sidder og prøver at få en længere formular (mellem 50 og 60 input) til
at fungere på den måde, at der ikke submittes ved tryk på [Enter].

I php-gruppen faldt jeg over et script, der med lidt tilføjelse skulle kunne
gøre det, men der submittes stadig ved tryk på [Enter].

Scriptet (indlæses i head):

window.onload = function () { keylistener(); }
function keylistener () {
var e = window.event;
if (e.KeyCode == 13 || e.KeyCode == 3) { // enter pressed
and disabled
e.keyCode=0; e.cancelBubble=true;
}
}

Hvad er der galt med den konstruktion?

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



 
 
Stig Johansen (01-04-2008)
Kommentar
Fra : Stig Johansen


Dato : 01-04-08 23:49

Erik Ginnerskov wrote:

> Jeg sidder og prøver at få en længere formular (mellem 50 og 60 input) til
> at fungere på den måde, at der ikke submittes ved tryk på [Enter].
>
> I php-gruppen faldt jeg over et script, der med lidt tilføjelse skulle
> kunne gøre det, men der submittes stadig ved tryk på [Enter].
>
> Scriptet (indlæses i head):
>
> window.onload = function () { keylistener(); }
> function keylistener () {
> var e = window.event;
> if (e.KeyCode == 13 || e.KeyCode == 3) { // enter pressed

Hvilken browser?
Jeg har det ikke lige ved hånden, men det hedder keyCode på den ene og
noget andet på den anden.
Jeg kan desværre ikke lige huske det andet navn.
Men i første omgang skal du være opmærksom på, at Javascript er case
sensitiv, så start med at rette til keyCode ( lille k )

--
Med venlig hilsen
Stig Johansen

Stig Johansen (01-04-2008)
Kommentar
Fra : Stig Johansen


Dato : 01-04-08 23:51

Stig Johansen wrote:

> Erik Ginnerskov wrote:
>> if (e.KeyCode == 13 || e.KeyCode == 3) { // enter pressed

BTW keycode 3 er ctrl+c, er det meningen du vil disable den også?

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (02-04-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-04-08 00:30

Stig Johansen wrote:

> BTW keycode 3 er ctrl+c, er det meningen du vil disable den også?

Det er vist ikke nødvendigt, jeg sletter det led.

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



Erik Ginnerskov (02-04-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-04-08 00:27

Stig Johansen wrote:

> Hvilken browser?

FF

> Jeg har det ikke lige ved hånden, men det hedder keyCode på den ene
> og noget andet på den anden.

Det skulle da helt gerne fungere uanset brugernes valg af browser.

> Men i første omgang skal du være opmærksom på, at Javascript er case
> sensitiv, så start med at rette til keyCode ( lille k )

Jeg retter og prøver.

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



Erik Ginnerskov (02-04-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-04-08 00:34

Erik Ginnerskov wrote:

>> Men i første omgang skal du være opmærksom på, at Javascript er case
>> sensitiv, så start med at rette til keyCode ( lille k )
>
> Jeg retter og prøver.

Øv, det hjalp ikke.

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



Stig Johansen (02-04-2008)
Kommentar
Fra : Stig Johansen


Dato : 02-04-08 07:51

Erik Ginnerskov wrote:

> Erik Ginnerskov wrote:
> Øv, det hjalp ikke.

Nå, jeg havde lige nøjagtig lavet en shutdown på min windows PC, så derfor
blev det lidt kort - du ved på vej i seng.

Nu har jeg fundet tingene frem og sammesat et fungerende eksempel.
Jeg har gjort det, at jeg disabler enter - men ikke hvis fokus er på submit
knappen.
eksemplet kan ses her:
<http://w-o-p-r.dk/tips/javascript/disable.enter.asp>
Testet i
FF 2.0.0.13 - ok
IE6 - ok
Konqueror 3.3.1 - ej ok, submitter men det er en gammel Konq.

Jeg havde tilfældigvis siddet med samme problemstilling med en masse input
og textarea og fået fyret en form af i tide og utide ;)

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (02-04-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-04-08 21:46

Stig Johansen wrote:

> eksemplet kan ses her:
> <http://w-o-p-r.dk/tips/javascript/disable.enter.asp>
> Testet i
> FF 2.0.0.13 - ok
> IE6 - ok

Og nu også testet med success i IE 7. Det er simpelthen super:

Tryk på [Enter] når fokus i et <input type="text"> er dødt.

Tryk på [Enter] når fokus i et <textrea></textarea> giver
det brugerønskede linjeskift

Tryk på [Enter] når fokus i [Submit] sender formularen.

Bukker og takker.

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



Birger (02-04-2008)
Kommentar
Fra : Birger


Dato : 02-04-08 08:08

"Erik Ginnerskov" <erik.ginnerskov@live.dk> skrev i en meddelelse
news:47f2c4cb$0$90265$14726298@news.sunsite.dk...
> Stig Johansen wrote:
>
>> Hvilken browser?
>
> FF
>
>> Jeg har det ikke lige ved hånden, men det hedder keyCode på den ene
>> og noget andet på den anden.
>
> Det skulle da helt gerne fungere uanset brugernes valg af browser.
>
>> Men i første omgang skal du være opmærksom på, at Javascript er case
>> sensitiv, så start med at rette til keyCode ( lille k )
>
> Jeg retter og prøver.
>


cancelBubble er svjv en IE specialitet.
til gengæld hedder keyCode også keyCode i andre
desuden skal i FF eventen overføres som parameter til funktionen.

Noget i retning af
function keylistener ( e) {
kCode = window.event ? window.event.keyCode : e.keyCode;
if ( kCode == 13) { // Enter
if ( window.event) { event.returnValue = false; }
else { e.preventDefault(); }
}
}

Det er ikke testet, men pillet ud af noget andet, hvor det virker det som
det skal. Så det kan ikke være så meget ved siden af..

Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.



Lasse Reichstein Nie~ (02-04-2008)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 02-04-08 19:25

"Birger" <sdc@bbsorensen.com> writes:

> Noget i retning af

Lige et par stil-tips.

> function keylistener ( e) {
> kCode = window.event ? window.event.keyCode : e.keyCode;

Husk at erklære de lokale variable (med "var"). Resten kan forkortes
lidt:
e = e || window.event;
var kCode = e.keyCode;

> if ( kCode == 13) { // Enter
> if ( window.event) { event.returnValue = false; }
> else { e.preventDefault(); }

Her tester du på window.event, men bruger e.preventDefault. Test på det
der skal bruges.

if (kCode == 13) {
if (e.preventDefault) {
e.preventDefault();
} else {
event.returnValue = false;
}
}

Heller ikke testet :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Birger (02-04-2008)
Kommentar
Fra : Birger


Dato : 02-04-08 19:53

"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:tzikdsi1.fsf@hotpop.com...
> "Birger" <sdc@bbsorensen.com> writes:
8X
> e = e || window.event;
> var kCode = e.keyCode;
>
>> if ( kCode == 13) { // Enter
>> if ( window.event) { event.returnValue = false; }
>> else { e.preventDefault(); }
>
> Her tester du på window.event, men bruger e.preventDefault. Test på det
> der skal bruges.
>
8X


Eller også tester jeg på event, og sætter (bruger) event.returnValue.
Det er vist lidt som man ser på det. ;>)


Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.



Erik Ginnerskov (02-04-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-04-08 22:06

Birger wrote:

> Eller også tester jeg på event, og sætter (bruger) event.returnValue.
> Det er vist lidt som man ser på det. ;>)

Dit script - med eller uden Lasses modifikationer - virker sikkert også. Men
Stigs bidrag giver præcis den funktion, der var ønsket, så det bliver den,
kunden får glæde af.

Men tak alligevel.

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



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

Månedens bedste
Årets bedste
Sidste års bedste