
106949
08.10.2012
HTML Formular - Java Script funktioniert nicht
Hallo zusammen,
ich habe auf einer Homepage ein HTML Formular für eine Anmeldung gebaut und beim "Absendenbutton" wird über OnClick mit einem Javascript überprüft, dass in jedem Feld ein Inhalt ist. Wenn das Überprüfen abgeschlossen ist, wird der Inhalt der Formulars in eine MySQL Datenbank geschrieben.
Leider funktioniert die Überprüfung nicht mehr und ich weiß auf Anhieb auch nicht wieso?! Hat bisher eigentlich immer funktioniert...
Wo liegt der Fehler?
LG Stefan
ich habe auf einer Homepage ein HTML Formular für eine Anmeldung gebaut und beim "Absendenbutton" wird über OnClick mit einem Javascript überprüft, dass in jedem Feld ein Inhalt ist. Wenn das Überprüfen abgeschlossen ist, wird der Inhalt der Formulars in eine MySQL Datenbank geschrieben.
<script type="text/javascript">
function chkFormular () {
if (document.Formular.Vorname.value == "") {
alert("Bitte Ihren Vornamen eingeben!");
document.Formular.Vorname.focus();
return false; }
if (document.Formular.Name.value == "") {
alert("Bitte Ihren Namen eingeben!");
document.Formular.Name.focus();
return false; }
if (document.Formular.Strasse.value == "") {
alert("Bitte Ihren Strasse eingeben!");
document.Formular.Strasse.focus();
return false; }
</script>
...
<form class="Formular" name="Formular" action="Anmeldung.php" method="post">
...
<table bordercolor="#000000" width="100%">
<tr><th class="AbsatztextKopie">Vorname:</th><th class="AbsatztextKopie"><input type="text" size="40" name="Vorname" style="width:250px" id="Vorname"></th></tr>
<tr><th class="AbsatztextKopie">Name:</th><th class="AbsatztextKopie"><input type="text" size="40" name="Nachname" style="width:250px" id="Nachname"></th></tr>
<tr><th class="AbsatztextKopie">Strasse + H.Nr.:</th><th class="AbsatztextKopie"><input type="text" size="40" name="Strasse" style="width:250px" id="Strasse"></th></tr>
</table>
<input type="submit" onClick="return chkFormular()"><input type="reset">
Leider funktioniert die Überprüfung nicht mehr und ich weiß auf Anhieb auch nicht wieso?! Hat bisher eigentlich immer funktioniert...
Wo liegt der Fehler?
LG Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 192376
Url: https://administrator.de/forum/html-formular-java-script-funktioniert-nicht-192376.html
Ausgedruckt am: 14.04.2025 um 07:04 Uhr
9 Kommentare
Neuester Kommentar
Habe in Zeile 8, 13 und 18 das "return false" in "return true" geändert.
... das ist Falsch - wenn ein Fehler Auftritt darf das Formular nicht gesendet werden das bewirkt man mit return falseNur wenn all deine Prüfungen erfolgreich sind (nicht fehlerhaft) wird mit return true das formular gesendet.
Ich würde das mit onsubmit="" im FORM tag machen und nicht beim Submit button.
setze das noch um - dann sollte das gehen<form ... onsubmit="chkFormular();" ... />
...
<input type="submit" name="" value="" />
...
Könnte man die Überprüfung auch in die PHP-Seite umziehen
natürlich - auch eine Prüfung per Ajax call ist machbar - ich würde sogar soweit gehen und sagen "es MUSS eine Prüfung seitens PHP erfolgen", da du nicht sicher sein kannst wie und woher die Daten an dein PHP Script (und dann in die DB !?) gesendet werden.
Hi StefanHuber,
1. Interessant find' ich, dass keine Fehlermeldung kommt bzw. dass dein Code funktioniert.
Bei deiner Funktion fehlt nämlich die abschließende Klammer des Funktionsrumpfs (s.u.).
Oder ist die beim Kopieren verlorengegangen
2. Mal so als Hinweis: Deine Prüfung, ob ein Textfeld nichts enthält (if (document.Formular.Vorname.value == "") . . . ),
mag auf den ersten Blick funktionieren, aber wenn man hier Leerzeichen eingibt, so sind auch diese gültige Eingaben und das Formular
wird gesendet. Besser wäre, man prüft, ob z.B. Buchstaben eingegeben wurden.
Diese Überprüfung läßt Buchstaben, Buchstaben und Zahlen zu, aber nicht Zahlen ohne Buchstaben.
Gruß
Günni
1. Interessant find' ich, dass keine Fehlermeldung kommt bzw. dass dein Code funktioniert.
Bei deiner Funktion fehlt nämlich die abschließende Klammer des Funktionsrumpfs (s.u.).
<script type="text/javascript">
function chkFormular () { // Klammer begin function
Dreimal if( . . .) { Anweisungen }
**} // Klammer end function fehlt**
</script>
Oder ist die beim Kopieren verlorengegangen
2. Mal so als Hinweis: Deine Prüfung, ob ein Textfeld nichts enthält (if (document.Formular.Vorname.value == "") . . . ),
mag auf den ersten Blick funktionieren, aber wenn man hier Leerzeichen eingibt, so sind auch diese gültige Eingaben und das Formular
wird gesendet. Besser wäre, man prüft, ob z.B. Buchstaben eingegeben wurden.
<script type="text/javascript">
<!--
function check_eingabe(){
/*
* Wir gehen von einer Nichteingabe aus und setzen ok auf false.
*/
ok=false;
//Prüfen, ob das Textfeld **nick** Buchstaben enthält, damit schon mal
//das Feld nicht leer bleibt.
muster=/[A-Za-zÄÖÜäöüß]/;
test_eingabe=muster.exec(document.formular.nick.value);
/*
* Wenn das Textfeld Buchstaben enthält, ok auf true setzen.
*/
if(test_eingabe){ok=true;}
/*
* Wenn das Textfeld keine Buchstaben enthält, bleibt ok false. Dann Hinweis ins Textfeld schreiben,
* den Fokus auf das Textfeld setzen und Text markieren
*/
if(!ok){
document.formular.nick.value="Bitte korrekt ausfüllen!";
document.formular.nick.focus();
document.formular.nick.select();
return false;
}
return true;
}
// -->
</script>
Diese Überprüfung läßt Buchstaben, Buchstaben und Zahlen zu, aber nicht Zahlen ohne Buchstaben.
Gruß
Günni
Hi StefanHuber,
hast du das Script auch an dein Formular angepasst?
Ich hab' das Script auch nur kopiert und gepostet. Es überprüft das
Textfeld nick aus meinem Formular, welches du durch die Namen
deiner Textfelder ersetzen musst.
Statt . . .
. . . muß es bei dir natürlich . . .
. . . heißen. Und das für jedes Textfeld, das du prüfen möchtest.
Nein, hab's gerade noch mal probiert. Das Formular wird nicht gesendet,
wenn keine Buchstaben im Textfeld sind.
Gruß
Günni
hast du das Script auch an dein Formular angepasst?
Ich hab' das Script auch nur kopiert und gepostet. Es überprüft das
Textfeld nick aus meinem Formular, welches du durch die Namen
deiner Textfelder ersetzen musst.
Statt . . .
test_eingabe=muster.exec(document.formular.nick.value);
. . . muß es bei dir natürlich . . .
test_eingabe=muster.exec(document.formular.Vorname.value);
. . . heißen. Und das für jedes Textfeld, das du prüfen möchtest.
... evtl. irgendwo ein Fehler drinnen?
Nein, hab's gerade noch mal probiert. Das Formular wird nicht gesendet,
wenn keine Buchstaben im Textfeld sind.
Gruß
Günni