Eva: Submit anhalten

Hallo!

Meine HTML Seite wird in ein Portal eingehängt, das als Rahmen alles schon mitbringt, inklusive einem <form ... onSubmit="checkMe()"> und einem </form> um meine eingehängte Seite rum.

Die JavaScript Funktion checkMe() muß ich selber füllen. Und da würde ich gerne prüfen, ob der Benutzer das Formular richtig ausgefüllt hat. (Es hat seinen Grund, warum ich das kurz vor dem submit machen muß und nicht mit onChange bei den einzelnen Formularelementen bereits abfragen kann: die Formularelemente müssen auch in Abhängigkeit voneinander geprüft werden.)

Wenn der Benutzer also etwas falsch eingegeben hat, möchte ich ihm nicht die Seite anzeigen, die nach dem Submit kommt, sondern einen alert() Hinweis, in dem drin steht, was er falsch eingegeben hat. Und nach dem alert() muß natürlich der submit abgebrochen werden, damit die Seite mit dem Formular stehen bleibt und der Nutzer die Eingabe korrigieren kann.

Meine Frage ist: ob es überhaupt möglich ist, den submit mit JavaScript abzubrechen und wenn ja wie.

Grüße
Eva

  1. Meine Frage ist: ob es überhaupt möglich ist, den submit mit JavaScript abzubrechen und wenn ja wie.

    ja, in dem du false als Rückgabewert verwendest.

    Struppi.

    1. ja, in dem du false als Rückgabewert verwendest.

      Hab mal eine ganz popelige Funktion geschrieben:

      function checkMe()
      {
        alert("Nix geht");
        return false;
      }

      Aber die nächste Seite wird trotzdem geladen.

      Hier das form Tag dazu:
      <form action="Seite2.jsp" method="post" onSubmit="checkMe()">

      1. Aber die nächste Seite wird trotzdem geladen.

        Hier das form Tag dazu:
        <form action="Seite2.jsp" method="post" onSubmit="checkMe()">

        du musst natürlich auch den Rückgabewert weiterreichen:
        <form action="Seite2.jsp" method="post" onSubmit="return checkMe()">

        Struppi.

        1. du musst natürlich auch den Rückgabewert weiterreichen:
          <form action="Seite2.jsp" method="post" onSubmit="return checkMe()">

          Danke!
          Funktioniert!

  2. Hallo Eva

    Wenn der Benutzer also etwas falsch eingegeben hat, möchte ich ihm nicht die Seite anzeigen, die nach dem Submit kommt, sondern einen alert() Hinweis, in dem drin steht, was er falsch eingegeben hat. Und nach dem alert() muß natürlich der submit abgebrochen werden, damit die Seite mit dem Formular stehen bleibt und der Nutzer die Eingabe korrigieren kann.

    Du solltest dich aber nicht darauf verlassen, dass beim Besucher JavaScript aktiviert ist und die Angaben zusätzlich auch noch mal serverseitig überprüfen um zu verhindern, dass falsch eigegebene Daten weiterverarbeitet werden.

    Meine Frage ist: ob es überhaupt möglich ist, den submit mit JavaScript abzubrechen und wenn ja wie.

    Sorge dafür, dass die Funktion checkMe() beim Auftreten von Fehlern false zurück gibt.

    Schöne Grüße

    Johannes

    --
    ss:| zu:} ls:[ fo:} de:] va:} ch:° sh:( n4:| rl:( br:^ js:| ie:{ fl:( mo:}
    1. Hallo Johannes,

      zum Glück haben wir hier in der Firma alle die gleichen Einstellungen am IE, die auch nicht veröndert werden können. Da das Script nur firmenintern verwendet wird, muß ich mir keine Sorgen um eingeschaltetes JavaScript machen.

      Sorge dafür, dass die Funktion checkMe() beim Auftreten von Fehlern false zurück gibt.

      Hab ich ausprobiert. Die nächste Seite wird trotzdem geladen.

      Eva

      1. zum Glück haben wir hier in der Firma alle die gleichen Einstellungen am IE, die auch nicht veröndert werden können. Da das Script nur firmenintern verwendet wird, muß ich mir keine Sorgen um eingeschaltetes JavaScript machen.

        Das kann u.U. eine Sicherheitslücke sein, da gerade der IE in der Standardeinstellung etliche Möglichkeiten offen hält um x-beliebige Dateien zu lesen. Aber solange man keine Geheimnisse hat, kann einem das auch egal sein ;-)

        Struppi.