Sven Rautenberg: Fehlermeldung beim Formularabschicken innerhalb von Javascript

Beitrag lesen

MoiN!

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?

Nein, das ist ein Fehler in der Definition der Funktion.

Der Aufruf mit checksuche() funktioniert einfach deshalb nicht, weil keine Funktion mit diesem Namen definiert ist.

Hast du im Dokument, welches das Formular enthält, diese Funktion definiert? Ist der Name auch wirklich durchgehend kleingeschrieben (ganz wichtig! Javascript ist case-sensitiv, Groß/Kleinschreibung ist entscheidend!)?

Oder kann auch in der Funktion selber ein Fehler vorhanden sein?

Klar, wenn dadurch verhindert wird, daß sie gültig definiert wurde, wird sie hinterher nicht gefunden. Aber dann wäre eine andere Fehlermeldung erschienen.

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?

Schreibst du die Funktion auch nochmal mit Javascript ins Formular?

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.

Die Schreibweise ist nicht anders. Egal ob vom Server oder durch Javascript erzeugt: Der Inhalt eines Dokuments funktioniert immer gleich.

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.

Die Fehlermeldungen sind aber dein Freund. :)

Was mir spontan noch einfällt: Du schreibst das Formular ja aus einem Frame heraus in einen anderen Frame. Wo ist die Funktion checksuche definiert? Im alten Frame? Dann kannst du auf sie auch frameübergreifend zugreifen.

Wenn sie z.B. im obersten Frame definiert wäre, würdest du sie aus allen Framefenstern heraus mit top.checksuche() aufrufen können. Logischerweise geht das Konzept auch, wenn sie im Frameset etwas tiefer angesiedelt ist: top.name1.name2.checksuche() geht, oder auch parent.nachbarframe.checksuche(). Eventuell solltest du damit mal etwas herumspielen. Wie du andere Frames über Javascript ansprichst, hast du ja schon herausgefunden. Auf die gleiche Weise werden Funktionen und Variablen angesprochen. Das funktioniert nur dann NICHT, wenn der Inhalt des anderen Frames von einer anderen Domain kommt (Sicherheitsbestimmungen verhindern das).

- Sven Rautenberg