Stefan Einspender: Abschicken des Formulares über Enter verhindern

Hallo ForumsleserInnen,

einer meiner Kunden hat den dringenden Wunsch, dass ein Formular nicht
mit Enter (Return) abgeschickt werden kann, wenn man sich in einem der
Formularfelder befindet und auf diese Taste drückt. Trotz meiner ein-
dringlichen Hinweise möchte er es so realisiert sehen :-/

Nun, ich bin leider nicht der große JavaScript-Kenner und so habe ich
jetzt eine Weile rumprobiert, aber so recht will es nicht klappen,
sowohl im Mozilla 1.0 als auch im MSIE 6.0 wird das Formular noch
abgeschickt, wenn ich auf Enter klicke.

Am vielversprechendsten erschien mir der Ansatz von Sven Rautenberg
(</archiv/2002/3/6828/#m37982>), nur auch da wird mein Formular abge-
schickt, wenn ich auf Enter klicke :-(

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>test</title>
<script type="text/javascript">
<!--
var abschicken=false;
//-->
</script>
</head>
<body>
  <form method="POST" action="test.php" onsubmit="return abschicken;">
    <p>Vorname Nachname:<br><input type="text" name="name" size="25"></p>
    <p>Telefon:<br><input type="text" name="telefon" size="25"></p>
    <p><input type="submit" value="Abschicken" onclick="abschicken=true;"></p>
  </form>
</body>
</html>

Das Erstaunliche (für mich zumindest *g*) dabei ist, dass es nicht
abgeschickt wird, wenn nur ein Formularfeld exisitiert, allerdings
benötige ich viele.

Hat jemand eine Idee, was ich hier ändern muß, damit das Abschicken
des Formulares bei Enter nicht stattfindet?

Ob dann einfach nichts passiert oder eine Meldung ausgegeben wird,
dass man das Formular über den Button abschicken soll, ist eigent-
lich egal.

Viele Grüße,
Stefan

  1. Hallo Stefan.

    <input type="submit" value="Abschicken" onclick="abschicken=true;">

    Hat jemand eine Idee, was ich hier ändern muß, damit das Abschicken
    des Formulares bei Enter nicht stattfindet?

    Ist schon alles richtig, warum IE und Mozilla nicht wollen weiß ich nicht, aber ich weiß, dass es am onclick liegt. Macht man da ein onmousedown draus, funktioniert es.

    Gruß
    Norbert

    1. Hallo Norbert,

      Ist schon alles richtig, warum IE und Mozilla nicht wollen weiß ich nicht, aber ich weiß, dass es am onclick liegt. Macht man da ein onmousedown draus, funktioniert es.

      funktioniert tatsächlich, danke :-)

      Ich hatte mir mittlerweile schon eine Sache aus der früheren Forums-
      Auslese (http://selfhtml.org/sfausles/tsfa_tcc.htm#a1) umgebastelt,
      aber so brauche ich doch deutlich weniger Quelltext.

      Viele Grüße,
      Stefan