Formularcheck mit Javascript geht nicht

badi

Mitglied
Hallo,

habe folgendes Problem:

Bei untenstehenden Quelltext meldet mir das Script nur zwar das der nickname nicht eingegeben ist und das die email addy fehlt wenn der nickname angegeben ist, aber wenn ich dannauf ok klicke und e-mail eingeben will wird formular an die Formmailerstelle gesendet. Das soll aber eigentlich nicht sein, denn das Formular soll komplett ausgefüllt sein.

Hoffe Ihr könnt mir weiterhelfen und sagt mir wo ich den Fehler gemachthabe. Danke.

Hier also nun der ausschnitt meines Quelltextes der mir Probleme macht:

<script type="text/javascript">
<!--
function chkFormular()
{
if(document.SurfoNet.nickname.value == "") {
alert("Bitte Deine Nickname eingeben!");
document.SurfoNet.nickname.focus();
return false;
}
if(document.SurfoNet.email.value == "") {
alert("Bitte Deine E-Mail Adresse eingeben!");
document.SurfoNet.email.focus();
return false;
}
if(document.SurfoNet.email.value.indexOf('@') == -1) {
alert("Keine E-Mail-Adresse!");
document.SurfoNet.email.focus();
return false;
}
if(document.SurfoNet.alter.value == "") {
alert("Bitte Dein Alter eingeben!");
document.SurfoNet.alter.focus();
return false;
}
var chkZ = 1;
for(i=0;i<document.SurfoNet.alter.value.length;++i)
if(document.SurfoNet.alter.value.charAt(i) < "0"
|| document.SurfoNet.alter.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1) {
alert("Altersangabe keine Zahl!");
document.SurfoNet.alter.focus();
return false;
}
if(document.SurfoNet.spielart.value == "") {
alert("Bitte Deine Spielart eingeben!");
document.SurfoNet.spielart.focus();
return false;
}
if(document.SurfoNet.charlevel.value == "") {
alert("Bitte Dein höchstes Charlevel eingeben!");
document.SurfoNet.charlevel.focus();
return false;
}
if(document.SurfoNet.momentan.value == "") {
alert("Bitte Deinen momentanen Acc eingeben!");
document.SurfoNet.momentan.focus();
return false;
}
if(document.SurfoNet.neu.value == "") {
alert("Bitte Dein DPL-Account eingeben!");
document.SurfoNet.neu.focus();
return false;
}
if(document.SurfoNet.regeln.value == "") {
alert("Hast Du die Regeln gelesen?");
document.SurfoNet.regeln.focus();
return false;
}
if(document.SurfoNet.sonstiges.value == "") {
alert("Wie bist Du auf uns aufmerksam geworden?");
document.SurfoNet.sonstiges.focus();
return false;
}

}
//-->
</script>
</HEAD>

<center><img src="images/contact.jpg"></center><br><br>
<BODY text=#cccccc vLink=#238d39 aLink=#238d39 link=#238d39 bgColor=#000000>

<center>
<TABLE cellSpacing=0 cellPadding=0 width=640>
<COLGROUP>
<COL width?320?>
<COL width?320?></COLGROUP>
<FORM NAME="SurfoNet" ACTION="http://www.masterportal24.com/cgi-bin/formmailing.cgi"; METHOD="POST" onSubmit="return chkFormular()">
<input style="color: #cccccc; background-color: #000000; border-color: #238d39;" TYPE="hidden" NAME="user" VALUE="Al007">
<input style="color: #cccccc; background-color: #000000; border-color: #238d39;" TYPE="hidden" NAME="subject" VALUE="Clan-Beitritt">

<Tbody>
<TR>
<br>
<TR>
<TD><FONT size=2 face="Verdana">Nickname:<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=50 size=40 name=nickname></TD></TR>
<tr>
<TD><FONT size=2 face="Verdana">E-Mail:<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=50 size=40 name=email></TD></tr>
<tr>
<TD><FONT size=2 face="Verdana">Alter:<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=50 size=40 name=alter></TD></tr>
<tr>
<TD><FONT size=2 face="Verdana">Spielart (LoD / D2C):<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=20 size=40 name=spielart</TD></tr>
<tr>
<TD><FONT size=2 face="Verdana">Höchster HC Char:<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=20 size=40 name=charlevel></TD></TR>
<tr>
<TD><FONT size=2 face="Verdana">Momentaner Acc:<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=50 size=40 name=momentan></TD></TR>
<tr>
<TD><FONT size=2 face="Verdana">Neuer DPL Acc:<BR><BR></FONT></TD>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=50 size=40 name=neu></TD></TR>
<tr>
<td><FONT size=2 face="Verdana">Ich akzeptiere die Regeln:<br><br></td>
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=10 size=40 name=regeln></TD></TR></tr>
<tr>
<TD vAlign=top><FONT size=2 face="Verdana">Wie bist Du auf uns aufmerksam geworden:<BR></FONT><BR></TD>
<TD><textarea style="color: #cccccc; background-color: #000000; border-color: #238d39;" name=sonstiges rows=10 wrap=physical cols=50></TEXTAREA></TD></TR>
</TBODY>
</TABLE>

<br>

<input style="color: #cccccc; background-color: #000000; border-color: #238d39;" type="Submit" value="Abschicken">
<input style="color: #cccccc; background-color: #000000; border-color: #238d39;" type="reset" value="Reset">
</center>
</form>


Cu Badi
 
Zuletzt bearbeitet:
PHP:
if (document.SurfoNet.email.value == "") { 
    alert("Bitte Deine E-Mail Adresse eingeben!"); 
    document.Formular.email.focus(); 
    return false; 
}
ist auch nicht richtig, wenn du dein Dokument betrachtest, denn du hast kein Formular namens "Formular". Richtig wäre hier:
PHP:
if (document.SurfoNet.email.value == "") { 
    alert("Bitte Deine E-Mail Adresse eingeben!"); 
    document.SurfoNet.email.focus(); 
    return false; 
}
Erklärung wäre hier, dass der JavaScript-Interpreter an der Stelle, an der auf einen Scriptfehler trifft, das Parsen des Codes abbricht, daher auch nicht an die Anweisung return false gelangt und *ohne* ein false als Rückgabewert wird der submit-Event nicht gecancelt und es findet ein Verschicken des Formulares statt. :)

hth,
Geist
 
Zuletzt bearbeitet:
Danke schonmal ein Fehler gefunden. Habe schon gehofft das wäre alles aber nach dem ändern besteht Fehler weiterhin. ABER jetzt gehen schonmal alle Felder bis zum Alter ohne Probleme.
Allerdings wird nach dem Alter abgesendet ohne das weitere meldungen kommen.

Hoffe wir finden ds Problem noch.
 
Zuletzt bearbeitet:
Hier bitte den <input>-Tag noch schließen...
PHP:
<TD vAlign=top><input style="color: #cccccc; background-color: #000000; border-color: #238d39;" maxLength=20 size=40 name=spielart</TD></tr>
hth,
Geist
 
DU BIST GENIAL. DANKE. was so 2 kleine Sachen doch bewirken ....

Ich wurde von einem Freund auf die Seite aufmerksam gemacht und der sagte mir ich solle das Problem hier mal ansprechen und nach 30 min ist das Problem shcon gelöst. DANKE. Ich werde die Seite weiterempfehlen.

Und nochmals ein dickes DANKE. Nun kann ich nach 5 Stunden endlich schlafen gehen.

Cu Badi
 
Die Lösung liegt darin, seinen Browser so zu konfigurieren, dass sinnvolle Fehlermeldungen erscheinen, wenn denn von Haus aus der Browser diese nicht freiwillig zeigt. ;)

Bzw. gleich einen Browser mit JavaScript-Konsole zum Debuggen zu verwenden. :)

na dann gute Erholung nach 5 Stunden Fehlersuche,
Geist
 
sowas... ich hätt gedacht, da fehlt noch irgendwo ein history.back();

... aber naja. der mensch kann sich irren. und ich ganz besonders.
 

Neue Beiträge

Zurück