# onsubmit-Funktion wird nicht ausgeführt.



## ilona (19. August 2003)

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


----------



## Andreas Gaisbauer (19. August 2003)

Hallo,

versuch mal das "return" aud folgender Zeile rauszulassen:

```
onsubmit="return checkform()">
```
also nur onSubmit="checkform()">. Mehr sollte es eigentlich nicht sein, zuminderst von Javascript Seite aus nicht,,,

ciao


----------



## ilona (19. August 2003)

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


----------



## SilentWarrior (19. August 2003)

Ich kenn mich ja in JavaScript nicht sehr gut aus, aber sollte nach dieser Zeile nicht ein Semikolon folgen?
	
	
	



```
var form = document.user_form
```


----------



## Sven Mintel (20. August 2003)

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:

```
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 )

```
if(form.vorname.value=="")
```


----------



## ilona (20. August 2003)

@ 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


----------



## vogtländer (20. August 2003)

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

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

Gruß
Falk


----------



## ilona (20. August 2003)

@ 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


----------



## vogtländer (20. August 2003)

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


----------



## Adam Wille (20. August 2003)

Debugging nennt man das, wenn du einfach mal folgendes probierst:

```
<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


----------



## ilona (20. August 2003)

AAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHH, ES GEHT! JIPPIEHHH, ES GEHT

Ich habe mich an Adam Wille´s Posting gehalten und

- das <form>-Tag noch umtype="text/javascript" ergänzt
- und das return in den Submit-Handler wieder mit aufgenommen.

UND JETZT GEHT`S

Mann, selten so gefreut. Also nochmals herzlichen Dank für alle Tipps die Ihr mir gegeben habt!

Und hoffentlich kann ich mich irgendwann revanchieren!

Grüße aus München
Ilona


----------

