Hallo Leute,
Ich habe ein ganz spezielles Problem in Javascript. Ich möchte ein Suchformular erstellen, wobei das Formular einerseits mit einem Link, der sich "Suchen" nennt und andererseits mit Return abgeschickt werden kann. Und weiters sollen die Formulardaten nach Submit in einer Funktion noch überprüft werden. Hinzukommt aber noch, dass ich das Formular in einer js-Datei habe, welche von jeder Seite meines Webs aufgerufen werden soll. D. h. das ganze ist in js geschrieben. Und weiters arbeite ich mit Frames und "nav1" ist der Frame, den ich hier ansprechen möchte.
Hier nun der Script Code:
parent.nav1.document.write("<table border=0 cellspacing=0 cellpadding=0><form name=suche method='get' target='_top' action='/cgi-bin/search.pl' onsubmit='javascript:return checksuche();'><tr><td height=18 width=9 nowrap></td><td>");
if(navigator.userAgent.indexOf("Opera")>-1){var sizeField=sizeOpera;}
else{if(navigator.appName.indexOf("Netscape")>-1){var sizeField=sizeNetscape;}
else{var sizeField=sizeMSIE;}}
parent.nav1.document.write("<input type='text' name='q' size='"+sizeField+"' class='formElements' value=''>");
parent.nav1.document.write("</div></td><td width=4></td><td valign=bottom><a class='search' href='javascript:parent.nav1.document.suche.submit();' onclick='javascript:return checksuche();'>Suchen</a></td></tr></form></table>");
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();'
Die Folgeseite wird zwar angezeigt, aber eben diese Fehlermeldung kommt, und außerdem wird meine Fuktion nicht aufgerufen.
Interessanterweise schreibt mir der Netscape 4.77 gar keine Fehlermeldung.
Mein Frage nun konkret: Wie schreibe ich diesen Funktionsaufruf innerhalb von Javascript richtig? Der gleiche Code funktioniert in reinem HTML indem man beim Form-Tag onsubmit="return funktionsname();" und im A-Tag onclick="return funktionsname();" angibt. Wie funktioniert das ganze in Javascirpt und mit Angabe des richtigen Frames?
Ich hoffe, dass mir jemand dabei helfen kann, denn ich stehe schon ziemlich an. Falls noch weitere Angaben benötigt werden, kann man mich auch gerne per Mail kontaktieren.
Danke einmal im voraus.
Sabine