Avatar billede soltveit Nybegynder
27. marts 2002 - 23:55 Der er 16 kommentarer og
1 løsning

ingen submit med Enter

Hvordan kan man nemt forhindre at en form submitter ved at trykke ENTER?
Avatar billede sn0wflake Nybegynder
27. marts 2002 - 23:57 #1
SKAL man klikke?
Avatar billede soltveit Nybegynder
28. marts 2002 - 00:05 #2
Ja, man skal klikke på en knap
Avatar billede cms Nybegynder
28. marts 2002 - 00:08 #3
<script>
function keyev(){
  if (window.event.keyCode == 13)
    window.event.keyCode = 0;
}
</script>
<form action="...">
<input type=text onKeyDown="keyev()" onKeyPress="keyev()" onKeyUp="keyev()">
<input type=submit>
</form>
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 00:12 #4
Man kan desværre ikke nemt forhindre at form bliver submitted via enter tastetryk. Løsningen ville være at checke med JavaScript hvilken tast brugeren trykker, for derefter at annullere tastetrykket.
Problemet bliver så større når man skal have det til at virke i Nutscrape da den selvfølgelig har sin helt egen måde at håndtere tingene på.
Jeg kan godt kode en løsning, men ikke for 15 points <:)
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 00:12 #5
i'll be damned :)
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 00:13 #6
Lækkert at lære!!! :)))
Avatar billede cms Nybegynder
28. marts 2002 - 00:13 #7
*G*
Avatar billede soltveit Nybegynder
28. marts 2002 - 00:15 #8
ok, men det skal virke i begge browsere, kan man ik bare lade være med at lave en type=submit knap, så vil den da ik sende ved ENTER, vil den?
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 00:41 #9
Virker i begge browsere og er XHTML 1.1 kompatibel. Damn I'm lazy :)


<script type="text/javascript">
<!--
if (document.layers) {
    document.captureEvents(Event.KEYPRESS);
}

function fnkEnter(e) {
    if (document.layers && e.which == 13) {
        return false;
        } else if (document.all && event.keyCode == 13) {
        window.event.keyCode=0;
    }
}

document.onkeypress=fnkEnter;
// -->
</script>

<form action="/dhtml/test.asp" method="get">
    <input type="text" />
    <input type="submit" />
</form>
Avatar billede jakoba Nybegynder
28. marts 2002 - 00:45 #10
næe, det er ikke så svært.

<form ...  onsubmit="if (this.realsubmit){this.realsubmit=false;return true;}else return false;">

<input type='submit* value='Send ved at klikke her' onclick="this.form.realsubmit=true;">

</form>

så kan folk tykke enter såmeget de vil, det er kun knappen der virker.

mvh JakobA
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 00:50 #11
Hvad hulen er "realsubmit"? Microsoft JavaScript eller hvad?
Avatar billede soltveit Nybegynder
28. marts 2002 - 00:52 #12
jeg acceptere dit sn0wflake, da du var hurtigst og det virker fint
Avatar billede soltveit Nybegynder
28. marts 2002 - 00:52 #13
jeg prøvede lige dit jakoba, jeg ku ik få det til at virke :(
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 00:54 #14
Takker. Det var min ære der var på spil :)))
Avatar billede jakoba Nybegynder
28. marts 2002 - 00:57 #15
sn0vflake >> realsubmit er en variabel vi opretter i form objektet når der trykkes på knappen. når der ikke er trykket er den enten udefineret (tester false) eller sat til false af onsubmit handleren.

mvh JakobA
Avatar billede stigc Nybegynder
28. marts 2002 - 01:13 #16
hvorfor ikke bare en button:

<input type="button" value='Send ved at klikke her' onclick="document.formname.submit();">
Avatar billede sn0wflake Nybegynder
28. marts 2002 - 01:22 #17
Tak for forklaringen JakobA :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester