onsubmit-Funktion wird nicht ausgeführt.

ilona

Grünschnabel
Hallo,
folgende JavaScript-Funktion mit Namen 'checkform' habe ich erstellt:

<!--

<script>
function checkform()
{
var form = document.user_form

if(form.vorname=="")
{
alert ("Bitte geben Sie den Vornamen ein.");
form.vorname.focus();
return false;
}
return true;
}
</script>

-->

Wenn auf der Webpage der "submit-Button" aktiviert wird, sollte diese Function starten.

<!--
<form name="user_form"
method="POST"
action="
<?php
echo $_SERVER['PHP_SELF'];
?>"
onsubmit="return checkform()">
-->

Mein Problem ist nun: Es tut sich garnichts. Keine Fehlermeldung, kein nichts. Diese onsubmit-Anweisung wird einfach ignoriert.

Habe ich ein Fehler in JavaScript? Oder eventuell im <form>-Tag?

Sollte kein Fehler vorliegen, möchte ich euch bitten, mir das auch mitzuteilen, denn dann habe ich ein Problem mit PHP.

Danke euch
 
Hallo,

versuch mal das "return" aud folgender Zeile rauszulassen:
PHP:
 onsubmit="return checkform()">
also nur onSubmit="checkform()">. Mehr sollte es eigentlich nicht sein, zuminderst von Javascript Seite aus nicht,,,

ciao
 
Hallo Andreas,

vielen Dank für Deine schnelle Antwort. Ich habe 'return'-Part aus dem <form>-Tag genommen, allerdings hat das nichts bewirkt. Gut, dann weiß ich jetzt zumindest, dass ich in meinem PHP-Skript oder in meinem Kopf einen Wurm drinnen habe.

Ich schau mir jetzt nochmals alles in Ruhe durch und wenn ich dem Fehler nicht auf die Spur komme, poste ich morgen nochmals im PHP-Forum.

Also nochmals Danke
und tschüß

Ilona
 
Ich kenn mich ja in JavaScript nicht sehr gut aus, aber sollte nach dieser Zeile nicht ein Semikolon folgen?
Code:
var form = document.user_form
 
Hi,Ilona

Falls du deinen <form>-Tag in deiner Seite auch auskommentiert hast,dann liegts daran,dass du kein Formular
zum senden hast....ich nehme aber mal an,du hast ihn nicht auskommentiert :sg:

Der Fehler im Skript liegt bei:
Code:
if(form.vorname=="")
form.vorname ist,schätze ich mal,ein <input>,es ist daher niemals leer sondern immer ein [object]

Du musst den Wert des Feldes abfragen,dann gehts :eek:)
Code:
if(form.vorname.value=="")
 
@ Silent Warrior

Danke für Deinen Hinweis, das Semikolon betreffend. Du hast recht, es ist ein Schönheitsfehler, aber soweit mir bekannt ist, sind die Semikolons am Ende einer Befehlszeile in JavaScript optional, zumindest hat das Hinzufügen kein Erfolg gebracht,...seufz.

@ fatalus

Es hörte sich so gut an, aber auch Dein Tipp bringt kein Erfolg. Es ist, als ob ich niemals eine onsubmit - Anweisung gegeben hätte. Die Funktion checkform() wird einfach ignoriert.

Aber trotzdem nochmals einen herzlichen Dank. Sobald ich weiß, woran es lag, werde ich es euch mitteilen.

Gruß
Ilona
 
1. Schreib mal onSubmit, also mit großem "S".

2. Ergänze noch die Angabe language="JavaScript" im script-Tag.

Gruß
Falk
 
@ vogtländer

Ich danke auch Dir für Deinen Vorschlag - aber auch hier: Fehlanzeige. Der Fehler muß irgendwo anders liegen. Weder im JavaScript-Bereich, noch im <form>-Tag bereich.

Eventuell muß ich noch tiefer gucken. Vielleicht liegt es an den Konifgurationsdateien php.ini oder so.

Aber, sobald ich des Rätsels Lösung habe, werde ich diese hier posten.

Gruß
Ilona
 
Poste doch mal das komplette Formular inklusive SUBMIT-Button. Vielleicht ist da irgendwo noch ein Fehler.

Alternativ kannst du auch einen Button (kein SUBMIT) verwenden, onClick deine Funktion aufrufen und das Formular mittels form.submit() senden.

An PHP sollte es eigentlich nicht liegen, aber du kannst ja mal schauen, was PHP in das action-Attribut schreibt.

Gruß
Falk
 
Debugging nennt man das, wenn du einfach mal folgendes probierst:
PHP:
<script type="text/javascript" language="JavaScript">
<!--

function checkform() {
    alert("Funktion wurde aufgerufen");
    var form = document.user_form;
    if (form.vorname.value == "") {
        alert ("Bitte geben Sie den Vornamen ein.");
        form.vorname.focus();
         alert("Formular wird nicht gesendet");
        return false;
    }
    alert("Formular wird gesendet");
    return true;
}

//-->
</script>
Ob dein PHP-Part stimmt kannst du ja recht easy herausbekommen, indem du den Quelltext des angezeigten HTML-Dokumentes mal auf Fehlerchen checkst, selbst wenn du dafür extra den W3C-Validator hinzuziehen musst. ;)

Dein JavaScript selbst sieht bis auf den von fatalus beschriebenen Zusammenhang Objekt/Eigenschaft nicht fehlerhaft aus. :)

return muss natürlich im onSubmit-Handler drinbleiben, das Semikolon von SilentWarrior ist nicht zwingend notwendig und ob du onSubmit oder onsubmit schreibst ist dem HTML-Parser völlig egal.

Gruß,
Adam
 
Zurück