ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
238
238
EMPFEHLEN
-
Hi Leute,
ich verzweifele gerade an einer simplen JS Anweisung.
Ich habe ein Formular mit Submitbuttons. Allerdings soll möchste das Formular schon abschciken, sobald man einen bestimmten Radio-Button gedrückt hat.
An sich nix kompliziertes:
Hier mal ein grober Aufbau von meinem Formular:
Kann mir bitte einer erklären warum keins dieser JS-Codes (in den Radio-Boxen) funktioniert.HTML-Code:<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="editpage" id="editpage" onsubmit="return checkForm(document.forms['editpage'],false);"> <div> diverse inhalte <input title="Seitentyp" type="radio" name="siteType" value="PORTAL" onclick="document.getElementById('editpage').submit()"/> <input title="Seitentyp" type="radio" name="siteType" value="CONTENT" onclick="this.form.submit()"/> <input title="Seitentyp" type="radio" name="siteType" value="BLA1" onclick="document.forms['editpage'].submit()"/> <input title="Seitentyp" type="radio" name="siteType" value="BLA1" onclick="document.editpage.submit()"/> </div> <div> diverse inhalte <input type="submit" name="submit" value="Alles speichern" /> </div> <div> diverse inhalte <!-- ich weiß hier stehen doppelte Namen. Die soltlen aber nicht für das Problem verantwortlich sein--> <input type="submit" name="submit" value="Alles speichern" /> </div> </form>
Ich bekomme ständig den Fehler, dass submit() keine Funktion ist. Ich habe auch schon den Quelltext meiner Seite überprüft ob ich ggf. dieses editpage mehrfach benutze --> Fehlanzeige.
Um die Formularprüfung einzubauen habe ich auch folgendes versucht:
Das funktioniert genausowenig. Die CheckForm Funktion wirft übrigens true oder false zurück ... je nachdem ob Fehler gefunden worden oder nicht.HTML-Code:<input title="Seitentyp" type="radio" name="siteType" value="CONTENT" onclick="if(checkForm(document.forms['editpage'],false)) {this.form.submit();}"/> <strong>Inhaltsseite</strong>
Ich hoffe jemand kann mir helfen ... ich krieg langsam nen dicken HALS ******
Mit freundlichen Grüßen
Daniel Schmidt
-
24.10.11 18:07 #2
Hallo Daniel,
ich habe gerade den Fehler mittels Testen gefunden. Der Fehler ist, dass der Browser denkt, dass du mittels document.getElementById("editpage").submit() auf das Input-Feld, das auch so heißt, zugreifen möchtest.
Allerdings ist dieses dann ein Objekt (vom Typ Input-Feld) und keine Funktion!
Also ist die Lösung ziemlich einfach: Den Submit-Button umbenennen!
Übrigens würde ich folgende Schreibweise - wie du es beim ersten Input-Feld getan hast - für onclick empfehlen:
Code javascript:1
document.getElementById('editpage').submit();
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
24.10.11 18:08 #3
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ich glaube das eben die gleichen Namen das Problem sind. Vergeben mal für jedes Objekt einen eigenen Namen und rufe das Submit-Ereignis so auf:
Code :1
onclick="document.editpage.submit();"
dann sollte es klappen.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Ok ich werde das mal mit den verschiedenen Namen für den Submit ausprobieren.
Aber ich habe auf der gesamten Seite kein Feld was editpage heißt. Der Name wurde NUR beim Form-Tag benutzt und zwar als ID und name. Dweshalb bin ich so verwundert, dass es irgendwas mit den Knöppen zu tun haben soll ...
Mfg DiDi
-
24.10.11 19:14 #5Einen Namen kann man übrigens mehrmals im Dokument nutzen! Im Gegensatz zu einer ID, die eindeutig sein muss.Aber ich habe auf der gesamten Seite kein Feld was editpage heißt. Der Name wurde NUR beim Form-Tag benutzt und zwar als ID und name. Dweshalb bin ich so verwundert, dass es irgendwas mit den Knöppen zu tun haben soll ...
Um es etwas deutlicher zu machen:
Nun, um das Problem zu verstehen, muss man wissen, dass man mittels Form-Objekt auch auf die einzelnen Felder per Namen zugreifen kann.
Beispiel:
HTML-Code:<form id="the_form"> <input type="text" name="first_field" /> </form>
Code javascript:1 2
var form_obj = document.getElementById("the_form"); // Das Form-Objekt im DOM alert(form_obj.first_field); // liefert in Chrome: [object HTMLInputElement]
Außerdem gibt es noch die Funktion submit() bei jedem Form-Objekt, die das Formular abschickt.
Jetzt war das Problem hier, dass ein gleichnamiges Input-Element (Submit-Button) erstellt hast. Dieses hat die submit()-Funktion überschrieben! Von daher versuchtest du immer das Input-Element als Funktion aufzurufen -> Fehler!mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
Ähnliche Themen
-
jQuery: $("#FormId").validator().submit(function(e) {...}
Von messmar im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 21.02.11, 16:26 -
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 -
$_POST['submit'] bleibt leer beim Formular Abschicken mit submit()
Von godfather_al im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 23.12.10, 14:13 -
Ajax Formular submit mit zwei submit-buttons, in Mootools
Von BMo im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 27.07.09, 00:52 -
PHP: Function führt function aus, wenn Bedingung erfüllt ist
Von Der_baum im Forum PHPAntworten: 4Letzter Beitrag: 14.11.07, 07:54





Zitieren



Login





