ccg: "Enter" Taste disabeln bei Forms

Hi, ich möchte gerne verhindern, dass man in einem Form mit der Enter Taste das form abschicken kann, wenn man sich bsp. in einem input feld befindet.

Grund: Wenn noch nicht alle bedingungen erfüllt sind, wird der submit button disabeld, aber man kann das form trotzdem durch drücken der enter taste abschicken.

Bitte um eine Lösung.

Danke

  1. Hallo,

    das geht ja ohnehin nur mittels JavaScript (oder Java-Applet).

    Und da musst Du einfach das Ereignis onSubmit abfangen.

    Das kannst Du global im Body-Tag tun oder auch für jedes Form separat in den Form-Tags.

    <form name="blah" onSubmit="return checkValues("blah") ...>

    Und checkValues(formname) gibt dann solange false zurück, bis die Werte passen.

    Bis denne

    Chris

    1. Hallo zusammen.
      Heisst das die Entertaste hat den Namen "blah"?
      Oder wie ist der Code für die Entertaste?

      Vielen Dank
      Michy

      1. Hallo,

        nein nein, mit dem onSubmit lässt du den Browser ein Skript ausführen wenn er auf welchem Weg auch immer das Formular abschicken soll - das kann per Mausklick oder Tastatur oder ... geschehen.
        Und solange du an dieser Stelle mit einer Prüffunktion feststellst, das noch was fehlt, gibst du einfach false zurück und schon wird das Formular zurückgehalten.

        MfG
        Rouven

        --

        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      2. Hallo zusammen.
        Heisst das die Entertaste hat den Namen "blah"?
        Oder wie ist der Code für die Entertaste?

        Nö, der Code für die Entertaste im Internet-Explorer ist #10 bzw #13. Kommt ganz darauf an, wie man sie abfragt. Das geht beim IE mittels windows.event.

        "blah" ist im Beispiel der Name des Formulars. Der Funktion wird der Formularname des Formulars übergeben, das das onSubmit ausgelöst hat. Dann braucht man nur eine Checkfunktion pro Document und die kann auf alle darin enthaltenen Formulare reagieren. Sie muss dann nur die Eingabefelder checken, die zum jeweiligen Form gehören.

        Bis denne

        Chris

        1. Hallo nochmals
          Sind das in Netscape andere Codes?
          und in Mozzila...?

          Michy

          1. Hallo nochmals
            Sind das in Netscape andere Codes?
            und in Mozzila...?

            Hallo Michy,

            jein. Das Event-Caching funktioniert dort vollkommen anders. Da kann man die Werte in der Queue auch nicht einfach so verändern, wie das bei MSIE möglich ist.

            Grüße

            Chris

    2. Hallo,

      das geht ja ohnehin nur mittels JavaScript (oder Java-Applet).

      Und da musst Du einfach das Ereignis onSubmit abfangen.

      Das kannst Du global im Body-Tag tun oder auch für jedes Form separat in den Form-Tags.

      <form name="blah" onSubmit="return checkValues("blah") ...>

      Und checkValues(formname) gibt dann solange false zurück, bis die Werte passen.

      Bis denne

      Chris

      Hi Chris,
      dein Beispiel funktioniert bei meinem ersten angewandeten Form auch nur beim 2ten und 3ten nicht *g*
      <FORM action=view.php method=post name=seite  onSubmit="return checkValues("seite")">
      <INPUT type=text name=seite onchange=chkseite() onkeypress=chkseite() onkeyup=chkseite() style="width:25;height:20"><INPUT type=submit disabled name=submit_seite value=Go style=height:20>
      </Form>

      Das ist das form. Wenn das Input feld keinen wert hat soll er den submit button disabled lassen, andernfalls ändert die funktion chkseite den wert auf enabled.
      Das gleiche soll jetzt für checkvalues gelten, nur da hab ich keine funktion deklariert. nur das was da oben steht.
      Ist das so richtig? Danke für die Antwort.

      1. Hallo,

        das geht ja ohnehin nur mittels JavaScript (oder Java-Applet).

        Und da musst Du einfach das Ereignis onSubmit abfangen.

        Das kannst Du global im Body-Tag tun oder auch für jedes Form separat in den Form-Tags.

        <form name="blah" onSubmit="return checkValues("blah") ...>

        Und checkValues(formname) gibt dann solange false zurück, bis die Werte passen.

        Bis denne

        Chris
        Hi Chris,
        dein Beispiel funktioniert bei meinem ersten angewandeten Form auch nur beim 2ten und 3ten nicht *g*
        <FORM action=view.php method=post name=seite  onSubmit="return checkValues("seite")">
        <INPUT type=text name=seite onchange=chkseite() onkeypress=chkseite() onkeyup=chkseite() style="width:25;height:20"><INPUT type=submit disabled name=submit_seite value=Go style=height:20>
        </Form>

        Das ist das form. Wenn das Input feld keinen wert hat soll er den submit button disabled lassen, andernfalls ändert die funktion chkseite den wert auf enabled.
        Das gleiche soll jetzt für checkvalues gelten, nur da hab ich keine funktion deklariert. nur das was da oben steht.
        Ist das so richtig? Danke für die Antwort.

        Ne doch nicht, das funktioniert überhaupt nicht, ich hab rausgefunden bei forms mit mehr als einem input type=text schickt er das form automatisch nicht ab wenn der submit button disabled ist. bei einem berücksichtigt er das jedoch nicht. was soll das? in einem form hab ich nur ein type=text...was soll ich da jetzt machen?

  2. hi,

    Hi, ich möchte gerne verhindern, dass man in einem Form mit der Enter Taste das form abschicken kann, wenn man sich bsp. in einem input feld befindet.

    Grund: Wenn noch nicht alle bedingungen erfüllt sind, wird der submit button disabeld, aber man kann das form trotzdem durch drücken der enter taste abschicken.

    Bitte um eine Lösung.

    kein problem, mit einem kleinen schraubenzieher lässt sich die [enter]-taste bei gängigen tastaturen problemlos aushebeln.
    dann kannst du dein formular ohne durch deine wurstfinger bedingtes versehentliches abschicken ausfüllen.
    anschliessend setzt du vorsichtig die taste wieder ein (erfordert ein wenig druck, bis sie einrastet), und kannst dann dein formular abschicken.

    HTH.

    gruss,
    wahsaga