[JavaScript] Formular abschicken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Formular abschicken

    Guten Abend
    ich bin derzeit dabei, mir JavaScript von Grund auf anzeignen, und stoße dabei auf folgendes Problem:
    Ein Formular soll nur abgeschickt werden, wenn alle Pflichtfelder ausgefüllt wurden.
    Zur Überprüfung hab ich folgende Funktion geschrieben, der ich die Formular-Namen und
    die Namen der auszufüllenden (übrigens Text-) Ferlder übergebe:
    Code:
    <script language="JavaScript">
    <!--
    function pruef (form) {
         var problem = "";
         var formular = "window.document." + form + ".";
         var checking;
         for (var i=1; i<pruef.arguments.length; i++) {
              checking = formular + pruef.arguments[i];
              if (eval(checking + ".value")=="")
                 problem += eval(checking + ".name") + " ";
         }
         if (problem!="") {
              window.alert ("Bitte füllen Sie folgende Felder aus:\n" + problem);
              return false;
         }
         return true;
    }
    //-->
    </script>
    Die Funktion wird aufgerufen mit:
    Code:
    <form name="formular" ... method="post" onSubmit="pruef('formular', 'Name');">
    Die Alert-Problem-Ausgabe klappt soweit auch, aber er schickt das Problem trotz return false ab,
    was ich nicht verstehe.
    Oder ist dieses "trotz" ein denkfehler und ich muss es ganz anders machen?
    Danke schon mal im Voraus.
    Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
    Es wär nur deine Schuld, wenn sie so bleibt

  • #2
    mach mal ..
    Code:
    onSubmit="return pruef('formular', 'Name');"
    draus, sieh das onSubmit auch als funktion, wenn dieser den wert false übergibst, DANN erst tut sie nix
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      prinzipiell richtig - nur die begründung ist etwas sehr schwammig:
      sieh das onSubmit auch als funktion, wenn dieser den wert false übergibst, DANN erst tut sie nix
      nein, onSubmit ist keine funktion, sondern ein eventhandler.
      und events werden der reihe nach abgearbeitet, also zunächst "feuert" onSubmit, anschließend erfolgt das, was der browser "normalerweise" mit einem formular macht (abschicken nämlich), etc.

      nennt sich "event bubbling", und eben dieses wird halt durch den mit return aus dem onSubmit zurückgegebenen false ggf. unterbrochen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        ach so.
        na, es hat jedenfalls geklappt, und dafür bin ich dankbar.

        also, nochmal vielen dank euch beiden
        Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
        Es wär nur deine Schuld, wenn sie so bleibt

        Kommentar

        Lädt...
        X