1Danke
ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
2201
2201
EMPFEHLEN
-
Hi
Ich habe ein Problem mit meiner Suchfunktion.
Mit Hilfe von Javascript und den Formulardaten wird die action des Formulars angepasst, danach sollte es abschickt werden.
Doch nun gibt mir die Fehlerkonsole immer folgenden Fehler aus:
Code :1 2 3
Fehler: domForm.submit is not a function Quelldatei: http://localhost:8180/author/docroot/aseintra/js/search.js Zeile: 28
Ich habe bereits mehrere Stunden gesucht, aber auf vielen Seiten werden nur Probleme wegen eines Elements mit dem Namen "submit" geschildert...
Bei mir hat kein Element diesen Namen.
Hier das Formular:
und hier das Javascript:HTML-Code:<jsp:root version="1.2" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:fn="urn:jsptld:http://java.sun.com/jsp/jstl/functions"> <div id="searchBoxMain"> <form method="post" id="searchForm" name="searchForm" action="javascript:submitSearchForm(document.getElementById('searchForm'), 'radio');"> <table cellspacing="0" cellpadding="0"> <tr> <td> <label for="query">Such<u>e</u>n: </label> </td> <td> <input size="27" id="query" name="query" value="${fn:escapeXml(param.query)}" accesskey="e" /> </td> </tr> <tr> <td> </td> <td colspan="2"> <input type="radio" name="repository" id="repository" value="site" />Intranet <input type="radio" name="repository" id="repository" value="phonebook" checked="checked"/>Telefon </td> <td> <input type="submit" name="search" value="Los" /> </td> </tr> </table> </form> </div> </jsp:root>
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
/** * Verarbeitungsfunktion fuer Suchformular. */ /** * Passt den Action-Path des Suchformulars an. * @param form Formular Objekt (DOM-Element) * @return void */ function submitSearchForm(domForm, type) { var domSelectRepository = document.getElementById('repository'); var repository = domSelectRepository.value; var domInputQuery = document.getElementById('query'); var query = domInputQuery.value; var checked = domInputQuery.checked; if(type == 'radio') { var chosen = GetSelectedItem(); }else{ var chosen = repository; } switch(chosen) { case 'phonebook': window.open('http://localhost:8180/apps/telefonverz/small_telefonverz.php?telid=' + query, '_self'); break; case 'site': domForm.action = '/' + getContextPath() + 'Intranet/search.html?search=search'; domForm.submit(); break; case 'problem': domForm.action = '/' + getContextPath() + 'Intranet/problemSearch.html?search=search'; domForm.submit(); break; } } /** * Gibt den per radio Button ausgewählten Wert zurück. * @return chosen */ function GetSelectedItem() { chosen = "" len = document.searchForm.repository.length for (i = 0; i <len; i++) { if (document.searchForm.repository[i].checked) { chosen = document.searchForm.repository[i].value } } return chosen; } /** * Gibt den Servlet-Context-Path zurueck. * @return Servlet-Context-Path */ function getContextPath() { var contextPath = location.href; contextPath = contextPath.substr(7); contextPath = contextPath.substr(contextPath.indexOf('/')+1); contextPath = contextPath.substr(0, contextPath.indexOf('/')+1); return contextPath; }
Vielen Dank im voraus!
-
07.03.08 08:48 #2
Hi,
ich bin mir nicht 100%ig sicher, aber es könnte daran liegen, dass du das JavaScript im Action-Attribut aufrufst.
Versuch mal dein Formtag wie folgt aufzubauen:
und dann deinen Submit-Button so:HTML-Code:<form method="post" id="searchForm" name="searchForm" action="">
Ich denke, so sollte es dann gehen!HTML-Code:<input type="button" name="search" value="Los" onClick="javascript:submitSearchForm(document.getElementById('searchForm'), 'radio');" />
Viele Grüße,
BigManuGruß,
Manuel
Programmers are busy writing the next best idiot proof software. The universe in the meantime is making the next best idiot. The universe is winning...
- - -
There are 10 kinds of people. Those who understand binary and those who not.
-
Vielen Dank für die schnelle Antwort!
Leider brachte die Änderung nicht den gewünschten Effekt, es wird der selbe Fehler ausgegeben.
Ausserdem habe ich auch schon forms mit dem js im action gemacht, die haben immer Funktioniert.
Das Javascript wird ja auch aufgerufen, also sollte dies kein Problem sein.
-
07.03.08 09:07 #4
Hm..., ok...
Ich hatte schon mal ein ähnliches Problem, komme nur gerade nicht mehr drauf, wie ich das damals lösen konnte, bzw. woran es lag.
Versuche mal in der form an Stelle von document.getElementById('searchForm') einfach this zu übergeben.Gruß,
Manuel
Programmers are busy writing the next best idiot proof software. The universe in the meantime is making the next best idiot. The universe is winning...
- - -
There are 10 kinds of people. Those who understand binary and those who not.
-
mhhh nutzt leider auch nix

Interessant ist ja, dass ich auf die Elemente zugreifen kann, ich kann ja action mit domForm.action = ... ändern.
Nur wieso das submit nicht geht ist mir ein Rätsel
-
07.03.08 09:24 #6
Ist es evtl. möglich, dass der JSP-Compiler da ein Hiddenfeld namens submit automatisch erzeugt? Ich hatte damals das Problem zwar nicht mit JSP, aber ich arbeite mich seit kurzem in JSF ein und da gab es ähnliche Phänomene...
Gruß,
Manuel
Programmers are busy writing the next best idiot proof software. The universe in the meantime is making the next best idiot. The universe is winning...
- - -
There are 10 kinds of people. Those who understand binary and those who not.
-
Hmm also im fertig generierten quellcode ist davon nichts zu sehen.
-
Hi,
dann zeig doch mal den fertig generierten Quellcode. Vielleicht ist dort mehr zu erkennen. Denn mit den von dir geposteten Codefragmenten funktioniert es bei mir problemlos.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Ich kann nichts ungewöhnliches erkennen aber hier:
HTML-Code:<form action="javascript:submitSearchForm(document.getElementById('searchForm'), 'radio');" name="searchForm" id="searchForm" method="post"> <table cellpadding="0" cellspacing="0"> <tr> <td> <label for="query"> Such <u>e</u> n: </label></td> <td> <input accesskey="e" value="" name="query" id="query" size="27"/></td> <td> <input value="Los" name="search" type="submit"/></td> </tr> <tr> <td/> <td colspan="2"> <input value="site" id="repository" name="repository" type="radio"/> Intranet <input checked="checked" value="phonebook" id="repository" name="repository" type="radio"/> Telefon</td> </tr> </table> </form>
-
Hi,
an dem Teil scheint es nicht zu liegen. Du hast dort zwar die ID repository zweimal verwendet - IDs müssen jedoch eindeutig sein. Aber da du den Zweig mit den Radiobuttons benutzt, sollte es dennoch funktionieren.
Das Problem muss also irgendwo anders im Quellcode verborgen liegen. Es wäre also sinnvoll mehr Informationen zu zeigen, am besten den kompletten fertig generierten Quellcode.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Oke hier der komplette:
HTML-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <title> Intranet </title> <meta content="" name="description"/> <meta content="" name="keywords"/> <meta content="no" http-equiv="imagetoolbar"/> <link href="/author/docroot/aseintra/css/blue.css" type="text/css" rel="stylesheet"/> <link media="print" href="/author/docroot/aseintra/css/bluePrint.css" type="text/css" rel="stylesheet"/> <script src="/author/docroot/aseintra/js/pdfwindow.js" type="text/javascript"></script> <script src="/author/docroot/aseintra/js/form.js" type="text/javascript"></script> <script src="/author/docroot/aseintra/js/search.js" type="text/javascript"></script> <script src="/author/docroot/aseintra/js/openexcel.js" type="text/javascript"></script> <script src="/author/docroot/aseintra/js/switcher.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="/author/.resources/admin-css/admin-all.css" /> <script type="text/javascript" src="/author/.magnolia/pages/javascript.js"></script> <script type="text/javascript" src="/author/.resources/admin-js/dialogs/dialogs.js"></script> <link rel="stylesheet" type="text/css" media="all" href="/author/.resources/calendar/skins/aqua/theme.css" title="Aqua" /> <script type="text/javascript" src="/author/.resources/calendar/calendar.js"></script> <script type="text/javascript" src="/author/.resources/calendar/lang/calendar-en.js"></script> <script type="text/javascript" src="/author/.resources/calendar/calendar-setup.js"></script> </head> <body> <div class="mgnlMainbarPreview" style="top:4px;left:4px;"> <span onmousedown="mgnlShiftPushButtonDown(this);" onmouseout="mgnlShiftPushButtonOut(this);" onclick="mgnlShiftPushButtonClick(this);mgnlPreview(false);" class="mgnlControlButton"> » </span> </div> <div id="header"> <table border="0" style="width:100%;" cellspacing="0" cellpadding="0"> <tr> <td> <div id="pageTitle"> Intranet </div></td> <td> <a href="/author"> <img border="0" id="logo" title="" alt="Home" src="/author/docroot/aseintra/imgs/logo2_180_off.gif"/></a></td> </tr> <tr> <td colspan="3" style="border-right:none;" class="breadcrust"> <a href="/author/Intranet.html" class="active">Intranet</a></td> </tr> </table> </div> <div id="contentMain"> <div id="leftGroup"> <div id="columnImage"> <div style="clear:both;text-align:left;" class="spacer0"> <p> <a href="/author/Intranet.html"> <img class="" style="width: 600px; height: 201px" height="250" alt="" hspace="0" width="600" align="top" border="0" src="/author/Intranet/topLeft1/0/content_files/file/mainpicture.jpg" /></a> </p> </div> <![CDATA[ ]]> </div> <div id="columnLeft1"> <ul class="level1 main"> <li class="closed"> <a href="/author/Intranet/Markt.html">Markt </a></li> <li class="closed"> <a href="/author/Intranet/Unsere-Firma.html">Unsere Firma </a></li> <li class="leaf"> <a href="/author/Intranet/Geschaeftsprozesse.html">Geschäftsprozesse </a></li> <li class="closed"> <a href="/author/Intranet/Dienste.html">Dienste </a></li> <li class="closed"> <a href="/author/Intranet/Bereiche.html">Bereiche </a></li> <li class="closed"> <a href="/author/Intranet/Anwendungen.html">Anwendungen </a></li> </ul> </div> <div id="columnLeft2"> <div style="clear:both;" class="spacer0"> <h2>Informationen</h2> <div style="border-right: #009cff 1px solid; padding-right: 0px; border-top: #009cff 1px solid; padding-left: 0px; background: #e0f5ff; padding-bottom: 0px; border-left: #009cff 1px solid; width: 216px; padding-top: 0px; border-bottom: #009cff 1px solid"><br /> <ul> <li> <a href="#"> <strong>Infoflash</strong></a></li> <li> <a target="_blank" href="#"> <strong>Monatliche News</strong></a> </li> </ul> </div> <strong>Intranet Passwort<br /></strong> </div> <![CDATA[ ]]> </div> <div id="columnLeft3"> <div style="clear:both;" class="spacer0"> <h2>Quicklinks</h2> <ul> <li> <a href="#">Intranet Suche</a></li> <li> <a href="#">Aktueller Menuplan</a></li> <li> <a href="#">IT-Workflow</a></li> </ul> </div> <![CDATA[ ]]> </div> </div> <div id="rightGroup"> <div style="border-left:none;" id="searchForm"> <div id="searchBoxMain"> <form action="javascript:submitSearchForm(document.getElementById('searchForm'), 'radio');" name="searchForm" id="searchForm" method="post"> <table cellpadding="0" cellspacing="0"> <tr> <td> <label for="query"> Such <u>e</u> n: </label></td> <td> <input accesskey="e" value="" name="query" id="query" size="27"/></td> <td> <input value="Los" name="search" type="submit"/></td> </tr> <tr> <td/> <td colspan="2"> <input value="site" id="repository" name="repository" type="radio"/> Intranet <input checked="checked" value="phonebook" id="repository" name="repository" type="radio"/> Telefon</td> </tr> </table> </form> </div> </div> <div style="clear:both;" class="spacer0"> <a name="columnParagraphs1"></a> <div class="news"> <div class="newsTitle"> Technische Probleme mit dem Intranet </div> <div class="newsTimestamp"> Bern - 24. Juli 2007, 10:06 </div> <div class="newsText"> </div> <div class="newsLink"> </div> </div> </div> <div style="clear:both;" class="spacer0"> <a name="columnParagraphs2"></a> <div class="news"> <div class="newsTitle"> Intranet überarbeitet </div> <div class="newsTimestamp"> Bern - 17. Juli 2007, 9:51 </div> <div class="newsText"> </div> <div class="newsLink"> </div> </div> </div> <![CDATA[ ]]> </div> </div> <div id="footer"> <a class="external" target="asehomepage" href="#"></a> | <a href="/author/sitemap">Sitemap</a> | <a href="javascript:switchInstance();">Public</a> </div> </body> </html>
-
Hi,
das Problem ist, dass du auch die ID searchForm zweimal vergeben hast:
Damit ist die ID nicht mehr eindeutig und der Browser entscheidet sich für das erste Element, dass dadurch identifiziert wird. In deinem Fall also das DIV und nicht das Formular.Code :1
<div style="border-left:none;" id="[B]searchForm[/B]">
Wenn du die IDs entsprechend anpasst, sollte es funktionieren.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
OMG vielen Dank es funktioniert
Diese id habe ich dem DIV vor langer Zeit mal für die Style Definitionen vergeben und total vergessen(ich habe sie schlussendlich nichtmal benutzt).
Irgendwie sinds immer die dümsten Fehler die am meisten Zeit rauben
Viele Grüsse
hurahorre
Ähnliche Themen
-
form.submit is not a funtion (nein, nicht das übliche mit name="submit")
Von Technoblade im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 14.01.11, 14:08 -
Form submit über JS funktioniert nicht
Von Phinix im Forum Javascript & AjaxAntworten: 18Letzter Beitrag: 20.08.10, 13:53 -
submit funktioniert nicht
Von tombo82 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 25.11.09, 12:53 -
form check nicht mit submit als link?
Von webraccoon im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 21.09.04, 17:43 -
form.submit(); funktioniert nicht...
Von pxlArtizzt im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 14.09.03, 18:48





Zitieren

Login





