Habe ein Problem mit CSS, Javascript und pHP

MrL0vee

Cadet 3rd Year
Registriert
Jan. 2010
Beiträge
59
Hallo, habe für ein privat entwickeltes Forum nun folgende Registrierungfunktion geschrieben. Allerdings haut das mit dem überprüfen des Formulares über Javascript nicht hin. Kann mir jeman sagen, wo der Fehler liegt ?

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">

<title>Registration</title>
<style type="text/css">
form { background-image:url(background.gif); padding:20px; border:6px solid #ddd; }
td, input, select, textarea { font-size:13px; font-family:Verdana,sans-serif; font-weight:bold; }
input, select, textarea { color:#00c; }
.Bereich, .Feld { background-color:#ffa; width:300px; border:6px solid #ddd; }
.Auswahl { background-color:#dff; width:300px; border:6px solid #ddd; }
.Check, .Radio { background-color:#ddff; border:1px solid #ddd; }
.Button { background-color:#aaa; color:#fff; width:200px; border:6px solid #ddd; }
</style>






<form name="Formular" action="http://www.seite.de/regis.php"
  method="post" onsubmit="submit chkFormular()">
<pre>
  <table border="0" cellpadding="3" cellspacing="0">
    <tr>
      <td align="right">Nickname</td>
      <td><input name="Nickname" type="text" class="Feld" size="30" maxlength="30"></td>
    </tr>
    <tr>
 <td align="right">Email-Adresse</td>
      <td><input name="mail" type="text" class="Feld" size="30" maxlength="30"></td>
    </tr>
    <tr>
      <td align="right">Passwort</td>
      <td><input name="passw" type="text" class="Feld" size="30" maxlength="40"></td>
    </tr>
    <tr>
      <td align="right" valign="top">Geschlecht:</td>
      <td>
        <input type="radio" class="Radio" name="Geschlecht" value="m"> männlich<br>
        <input type="radio" class="Radio" name="Geschlecht2" value="w"> weiblich
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">Worin haben sie Kentnisse im IT sowie Internet-Bereich?</td>
      <td>
        <input type="checkbox" class="Check" name="kentnisse" value="html">HTML<br>
        <input type="checkbox" class="Check" name="kentnisse2" value="css">CSS<br>
        <input type="checkbox" class="Check" name="kentnisse3" value="php"> PHP<br>
        <input type="checkbox" class="Check" name="kentnisse4" value="jscript">Javascript<br>
        <input type="checkbox" class="Check" name="kentnisse5" value="cpp"> C++<br>
        <input type="checkbox" class="Check" name="kentnisse6" value="craute">C#<br>
        <input type="checkbox" class="Check" name="kentnisse7" value="other"> Anderes<br>
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">Wieso möchten sie unser Forum benutzen ?</td>
      <td>
      <select name="Motiv" class="Auswahl" size="1">
        <option value="kerweitern">Kentnisse erweitern</option>
        <option value="kteilen">Kentnisse teilen</option>
        <option value="other1">etwas anderes</option>
        
      </select>
      </td>
    </tr>
    <tr>
      <td align="right" valign="top">Ihre Signatur:</td>
  
   <td><textarea name="signatur" class="Bereich" rows="10" cols="50"></textarea></td>

    </tr>
    <tr>
      <td align="right">Formular:</td>
      <td>
        <input type="submit" class="Button" value="Absenden">
        <input type="reset" class="Button" value="Abbrechen">
      </td>
    </tr>
  </table>
</pre>
</form>







<script type="text/javascript">
function chkFormular () {
  if (document.Formular.Nickname.value == "") {
    alert("Bitte geben sie ihren Nicknamen ein!");
    document.Formular.Nickname.focus();
    return false;
  }
  if (document.Formular.passw.value == "") {
    alert("Bitte geben sie ein Passwort ein!");
    document.Formular.passw.focus();
    return false;
  }
  if (document.Formular.geschlecht.value == "") {
    alert("Bitte wählen sie ihr Geschlecht aus!");
    document.Formular.geschlecht.focus();
    return false;
  }
  
  if (document.Formular.kentnisse.value == "") {
    alert("Bitte wählen sie ihre Kentnisse aus!");
    document.Formular.kentnisse.focus();
    return false;
  }

}
  if (document.Formular.kerweitern.value == "") {
    alert("Bitte wählen sie ihr Motiv aus!");
    document.Formular.kerweitern.focus();
    return false;
  }
}
  if (document.Formular.signatur.value == "") {
    alert("Bitte erstellen sie eine Signatur!");
    document.Formular.signatur.focus();
    return false;
  }
}
  if (document.Formular.mail.value == "") {
    alert("Bitte füllen sie das Feld "Email-Adresse" aus.");
    document.Formular.mail.focus();
    return false;
  }
  }
  if (document.Formular.mail.value.indexOf("@") == -1) {
    alert("Sie haben keine gültige Email-Adresse angegeben!");
    document.Formular.Mail.focus();
    return false;
  }

 var chkZ = 1;
  for (i = 0; i < document.Formular.Alter.value.length; ++i)
    if (document.Formular.Alter.value.charAt(i) < "0" ||
        document.Formular.Alter.value.charAt(i) > "9")
      chkZ = -1;
  if (chkZ == -1) {
    alert("Altersangabe keine Zahl!");
    document.Formular.Alter.focus();
    return false;
  }
}
</script>
 
Kannst du dich vielleicht zu einer besseren Beschreibung hinreißen lassen? 2 Zeilen Text und 100 Zeilen Code... -.-

Was genau ist den Ziel und was genau funktioniert nicht?
 
Also. Was funktioniert nicht ?? Das Javascript sollte die Formulareingaben (Variablen Nickname, Passw, email, kentnisse und so weiter) überprüfen und, wenn keine Eingabe vorhanden ist eine Fehlermeldung in Form eines Alerts ausgeben.

Das ganze sollte bei Klick auf ABSENDEN funktionieren. Klappt aber nicht. Ich frage nun, ob jemand weiß, wo der Fehler liegt.
 
Wie wärs mit "das Ding tropft vor syntaktischen Fehlern"?

1. Die Anzahl von { muss gleich der Anzahl der } sein. Zähl mal nach.
2. Guck dir mal an, wie man Radiobuttons erstellt. Die müssen alle den gleichen Namen haben.
3. Eine Eingabepflicht bei Checkboxen macht irgendwie keinen Sinn.
4. Eine Eingabeplifcht auf eine Combobox ohne Dummywert macht keinen Sinn.
5. Deine Combobox heißt "Motiv". Javascript erwartet etwas mit dem Namen "kerweitern".
6. Gegrillt werden deine Bemühungen aber von dieser Zeile: alert("Bitte füllen sie das Feld "Email-Adresse" aus."); den Fehler zu finden überlasse ich die selbst.
7. Es muss lauten onsubmit="return chkFormular();"

Dann was Grundsätzliches:
- Entscheide dich für oder gegen Groß-/Kleinschreibung, aber zieh es dann stringent durch.
- Es hilft ungemein, wenn du die JavaScriptabfragen in der gleichen Reihenfolge wie dein Formular machst. Das ist gut zum Debuggen und hilft auch deinem Benutzer, weil ja in der JS-Reihenfolge die Fehler genannt werden.
 
einmal ist das submit vor der funktion falsch wie oben schon erwähnt
und dann afaik macht es keinen sinn immer return false; zu schreiben
wenn die Funktion in der action einer form ist das dort der Return ja
nicht ausgewertet werden kann wenn nachdem Submit die seite neu
geladen wird.
 
Danke erstmal. Bin neu in Javascript usw und da kann es schon passieren, dass einem Fehler unterlaufen. Aber danke, habe das Problem gelöst.
 
CreeTar schrieb:
und dann afaik macht es keinen sinn immer return false; zu schreiben
wenn die Funktion in der action einer form ist das dort der Return ja
nicht ausgewertet werden kann wenn nachdem Submit die seite neu
geladen wird.
Wenn onsubmit false ist wird eben nicht abgeschickt.
 
Zurück
Oben