Eine Formularvariable übergeben
Doc_McSky
- javascript
Hallo Gemeinde,
ich verzweifle bei diesem Wetter mal wieder an Javascript und deren Objekten.
Im Augenblick habe ich ein Formular, darin sind einige Select Anweisungen, die der Benutzer ausfüllen muss. Darunter findet er die normalen Buttons für den Submit und einen für Reset des Formulars. Da z.B. beim Reset noch eine Prüfung durchgeführt wird, da der Reset von einer per AJAX angesprochenen Routine ausgeführt wird, kommt nur ein "Button" element zum Einsatz, das an eine zu prüfende JS Routine übergibt. Der Buttonsteil sieht also so aus:
<input type="submit" name="search" value="suchen">
und der Resetbutton:
<input type="button" name="reset" value="löschen" onClick="javascript:selectRequestVSearch(this.form, 'reset');">
Klappt prima, jetzt aber mein Problem:
Ich habe nun schöne grafische Bildchen, die als Buttons dienen sollen und die per einigem CSS Code zusammengefügt werden. Der eigentliche Button ist hier dann eine Verlinkung und sieht so aus:
<div class="clear">
<a class="button" href="javascript:void(0);" onclick="javascript:document.f_search.submit();"><span>suchen</span></a>
<a class="button" href="javascript:void(0);" onclick="javascript:selectRequestVSearch(this.form, 'reset');"><span>löschen</span></a>
</div>
So, das Problem nun ist, das z.B. bei dem Reset "Link", wenn per onclick die JS Routine aufgrufen wird, das Formularobjekt nicht übermittelt wird. In der JS Routine sagt er mir jetzt, das mein Element, heißt dort "fform" NULL wäre oder nicht existend. Kann es sein, das man in dem Linkelement <a> die Formularvariable nicht übergeben kann, oder muss man das anders ausführen, jedenfalls scheint hier this.form nicht das zu übermitteln, was es soll.
Auch der submit-Befehl geht nicht, was mache ich hier falsch, was muss anders lauten?
Auch wenn ich statt this.form irgendwas mit document.f_search oder document.forms.f_search schreibe ändert das alles nichts.
Vielen Dank für eine Hilfe.
Gruß
Doc
Hallo,
bau dir doch ein mini-test und poste das hier. nimm onlick="my_js_function()", da reicht. und nix im href bzw. "#".
Gruß
jobo
Mahlzeit Doc_McSky,
Ich habe nun schöne grafische Bildchen, die als Buttons dienen sollen und die per einigem CSS Code zusammengefügt werden. Der eigentliche Button ist hier dann eine Verlinkung und sieht so aus:
<div class="clear">
<a class="button" href="javascript:void(0);" onclick="javascript:document.f_search.submit();"><span>suchen</span></a>
<a class="button" href="javascript:void(0);" onclick="javascript:selectRequestVSearch(this.form, 'reset');"><span>löschen</span></a>
</div>
Das ist kein Button - das ist <div>-Element. Was spricht gegen
`<input type="image" src="...">`{:.language-html}
?
> In der JS Routine sagt er mir jetzt, das mein Element, heißt dort "fform" NULL wäre oder nicht existend. Kann es sein, das man in dem Linkelement <a> die Formularvariable nicht übergeben kann, oder muss man das anders ausführen, jedenfalls scheint hier this.form nicht das zu übermitteln, was es soll.
<http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#a@title=Ein <a>-Element kennt keine Eigenschaft namens "form".>
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Hallo EKKi,
Das ist kein Button - das ist <div>-Element. Was spricht gegen
<input type="image" src="...">
?
Nun ja, dagegen spräche nichts, aber mein "Bild" ist ja nicht nur ein Teil. Ich habe mir einen Button gemalt, da ich aber unterschiedlichen Text reinschreibe musste er variabel breit bleiben, also gibt es etwas CSS Code, damit der linke Teil und die Mitte des Buttons gebildet werden mit <span> und dann am ende bei </a> dasl letzte rechte Buttonelement angefügt wird. Diese Bastelei ist mir mit
<input type="image" src="...">
nicht ganz möglich, daher habe ich jetzt schöne "Button" ähnliche Bildchen, die der Browser auch hübsch zusammenbaut, aber meine Funktionalität ist weg.
Was kann ich denn tun, um die echten Buttons durch ein <a> Element zu ersetzen? Wie kann ich denn da die Formulardaten übergeben, das muss doch irgendwie gehen...?!?!?
Ich muss doch mit einem Link auch ein Formular abschicken können, wie bei dem submit Button, das muss doch auch gehen...
Gruß
Doc
Mahlzeit Doc_McSky,
Nun ja, dagegen spräche nichts, aber mein "Bild" ist ja nicht nur ein Teil. Ich habe mir einen Button gemalt, da ich aber unterschiedlichen Text reinschreibe musste er variabel breit bleiben, also gibt es etwas CSS Code, damit der linke Teil und die Mitte des Buttons gebildet werden mit <span> und dann am ende bei </a> dasl letzte rechte Buttonelement angefügt wird. Diese Bastelei ist mir mit
<input type="image" src="...">
nicht ganz möglich, daher habe ich jetzt schöne "Button" ähnliche Bildchen, die der Browser auch hübsch zusammenbaut, aber meine Funktionalität ist weg.
Ein Button ist ein http://de.selfhtml.org/html/formulare/klickbuttons.htm#modern@title=Button ist ein Button:
<button type="submit">suchen</button>
<button type="button" onclick="selectRequestVSearch(this.form, 'reset');">löschen</button>
Diese kannst Du mit CSS auch beliebig stylen ...
MfG,
EKKi
Hi,
<div class="clear">
<a class="button" href="javascript:void(0);" onclick="javascript:document.f_search.submit();"><span>suchen</span></a>
<a class="button" href="javascript:void(0);" onclick="javascript:selectRequestVSearch(this.form, 'reset');"><span>löschen</span></a>
</div>
Beim ersten dieser Links schaffst du es doch, ein Formular anzusprechen, ohne this.form zu nutzen - wieso kriegst du es dann beim zweiten nicht mehr hin?
> Auch wenn ich statt this.form irgendwas mit document.f\_search oder document.forms.f\_search schreibe ändert das alles nichts.
Dann machst du wohl irgendwas falsch.
</hilfe/charta.htm#tipps-fuer-fragende>
MfG ChrisB
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.
@@Doc_McSky:
nuqneH
<input type="button" name="reset" value="löschen" onClick="javascript:selectRequestVSearch(this.form, 'reset');">
(1) "löschen"? Nein! "löschen".
„Es ist fast immer besser, eine Zeichencodierung zu benutzen, die es erlaubt, die Zeichen in ihrer normalen Form zu verwenden, anstatt Zeichen-Entity-Referenzen oder numerische Zeichenreferenzen zu verwenden.
Die Verwendung von Escapes macht den Quelltext schlechter lesbar und schwerer zu pflegen und kann auch die Dateigröße beträchtlich erhöhen.“ [ESCAPES]
(2) Im Wert von '@onclick' steht JavaScript-Code? Darin ist ein Label "javascript" sinnfrei.
<input type="button" name="reset" value="löschen" onclick="[code lang=javascript]selectRequestVSearch(this.form, 'reset');
">[/code]
Qapla'