Sabine: Fehlermeldung beim Formularabschicken innerhalb von Javascript

Beitrag lesen

Hallo Sven!
Danke einmal für die vielen Hinweise! Ich habe auch schon alle umgesetzt.

Moin!

Du hast ein komplexes Problem...

Im IE 5.5 ergibt dieser Code einen Laufzeitfehler in Zeile 0, Fehler: Objekt erwartet. Im Script-Debugger werden je nachdem, ob auf den Link oder auf Return geklickt wird, folgende 2 Zeilen gekennzeichnet:

onsubmit='javascript:return checksuche();' und
onclick='javascript:return checksuche();'

onclick, onmouseover, onmouseout, onsubmit, onirgendwas... - alle haben eine Gemeinsamkeit: Bitte kein "javascript:" davorsetzen! Diese Attribute sind Event-Handler, das bedeutet, sie können nur Javascript ausführen, alles andere wäre sinnlos. Bei einem Link <a href="irgendwas"> muß man "javascript:" davorschreiben, damit der Browser weiß, was er da als URL hat, und nicht versehentlich solch eine Seite vom Server abruft.

Danke für die ausführliche Erklärung! Ich habe nun bei onsubmit das "javascript:" rausgenommen, nun steht nur mehr onsubmit='return checksuche();'

Außerdem reicht es vollkommen, wenn du nur onsubmit prüfst, ob das Formular in Ordnung ist.

Ok, ist eigentlich wahr... habe onclick rausgenommen.

Punkt zwei: Im <form> steht: target="_top". Das mußt du natürlich ändern, wenn das Ergebnis des Formulars in einen bestimmten Frame gehen soll.

Ja, das ist mir klar. Das Ergebnis wird aber in einer eigenen Website angezeigt.

Die Folgeseite wird zwar angezeigt, aber eben diese Fehlermeldung kommt, und außerdem wird meine Fuktion nicht aufgerufen.

Wenn Fehler entdeckt werden, dann wurde das, was fehlerhaft ist, nicht gemacht. Formular abschicken geht (das hat mit Javascript nichts zu tun), aber Prüfen geht nicht wegen falschem Aufruf.

Ja genau, das ist mir mittlerweile auch schon klar, dass mein Aufruf der Funktion falsch ist. Nur leider bin ich immer noch nicht draufgekommen wie ich es richtig schreibe.

Interessanterweise schreibt mir der Netscape 4.77 gar keine Fehlermeldung.

Bestimmt tut er das, nur versteckt. Wenn du in die URL-Zeile "javascript:" eingibst (das hat jetzt nichts mit dem "javascript:" von eben zu tun), dann öffnet er die Javascript-Konsole, in der nacheinander alle auftretenden Fehler angezeigt werden. Und das sogar brauchbarer, als beim IE ohne Debugger.

Dieser Hinweis hat mir sehr geholfen. Das wußte ich nicht, dass ich im Netscape mit "javascript:" diese Fehlerbeschreibungen bekomme. Also bei meinem Fall kommt jetzt, nachdem ich alle Deine Hinweise ausgebessert habe, folgende Fehlermeldung: "checksuche is not defined." Ist das nun wirklich ein Fehler im Aufruf der Funktion? Oder kann auch in der Funktion selber ein Fehler vorhanden sein? Ich kenne da leider Javascript zu wenig. Also dass es die Funktion auch wirklich gibt, mußt Du mir auch glauben. Ich habe auch extra nochmal den Namen der Funkion beim Aufruf noch mal mit STRG-C und STRG-V zur Funktion selber kopiert, um ja auszuschließen, dass ich den Namen falsch geschrieben habe. Ich weiß nicht, stehe ich jetzt auf der Leitung? Warum geht denn mein Funktionsaufruf nicht? Direkt in HTML funktioniert er einwandfrei. Und dort habe ich auch den Beweis, dass die Funktion selber richtig ist (es wird dort nur überprüft, ob das Feld leer ist oder nicht). Also liegt es doch irgendwie daran, dass dieses ganze Formular samt Aufruf in einer js-Datei liegt? Ist da die Schreibweise anders? Das war auch der Grund, warum ich bei onsubmit javascript: davor gesetzt habe.

Ich hoffe ich stelle hier nicht zu viele Fragen. Ich bin nur schon etwas verzweifelt dabei. Und dann werd ich aus den tollen Fehlermeldungen von Javascript nicht wirklich schlau.

Danke nochmal
Sabine

  • Sven Rautenberg