Markus: Formular mit JS verschicken klappt nicht

Beitrag lesen

Hallo eddi,

Ich habe Deinen angegebenen Link sehr wohl aufgerufen und mit meinem Code verglichen, kann aber keine (gravierenden) Unterschiede finden, die verhindern könnten, dass mein Formular abgeschickt wird.

Gut, dann vergleiche wir mal Schritt für Schritt meinen Code mit dem Beispiel in SelfHTML:

---------------
Meine Funktion:
---------------

function ueberpruefe()
{
  if (document.sms.name.value == "")
  {
    alert('Bitte gebe deinen Namen ein!');
    document.sms.name.focus(); // Damit setzt sich der Cursor automatisch da ins Feld rein, wo der Fehler ist
    return false;
  }
  else
    if (document.sms.name.value == "Name")
    {
      ...
      return false;
    }
    else
      ...
        else
          return true;
}

--------
SelfHTML
--------

function CheckInput()
{
  for (i=0; i<document.forms[0].elements.length; ++i)
    if (document.forms[0].elements[i].value == "")
    {
      alert("Es wurden nicht alle Felder ausgefuellt!");
      document.forms[0].elements[i].focus();
      return false;
   }
   return true;
}

Mein Skript unterscheidet sich von dem SelfHTML-Beispiel darin, dass ich keine Schleife verwende. Ansonsten wird bei Fehlern false zurückgegeben, bei fehlerhaften Eingaben true.

-------------
Mein Formular
-------------

<form action="<?=$_SERVER['PHP_SELF']?>"
      name="sms"
      method="post"
      onsubmit="return ueberpruefe();">

<input name="name"
         value="<?php echo $_POST['name'] == '' ? '' : $_POST['name'];?>"
         type="text">

<a href="#"
     onclick="document.sms.submit();">
     <input type="image"
            src="pic/nav/N_eintrag_speichern.png"
            width="93"
            height="16"
            alt="Absenden"
            name="Absenden"
            value="Absenden">
  </a>
</form>

--------
SelfHTML
--------

<form action="onsubmit.htm" onSubmit="return CheckInput();">
  Feld 1: <input size="30"><br>
  Feld 2: <input size="30"><br>
  Feld 3: <input size="30"><br>
  <input type="submit">
</form>

Ich übergebe das Formular an sich selber, SelfHTML ruft die Datei onsubmit.htm auf. Beide Formulare haben im form-Tag den Event-Handler onsubmit mit Aufruf der Überprüfung der Eingaben über Javascript.

Wenn ich in meinem Formular die Felder leer lasse oder falsch ausfülle, dann bekomme ich - wie bereits beschrieben - entsprechende Fehlermeldungen, nur wird das Formular nicht abgeschickt.

Vielleicht sehe ich auch nur den Wald vor lauter Bäumen nicht mehr... :o)

Gruss, Markus