PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : xxx.submit() will nicht


c4
29.12.2003, 15:28:52
Moin,

hab ich mal wieder ein dummes Problem mit JavaScript:
document.getElementById('ding').submit();
document.forms[0].submit();
Beides klappt nicht. 'Das Objekt unterstützt diese Methode nicht' Oder so ähnlich. Das Formular hat die ID 'ding', es ist auch das erste (und letzte) seiner Art. Beides sollte also klappen. So wie an anderen Stellen auch.

Idee, Vorschläge?


Danke,
Carsten

Nev
30.12.2003, 09:38:03
Hi c4

Du wirst wahrscheinlich einen Link haben, der ein bestimmtes Formular absenden soll

Oder??

So nun gibt es da ein paar Unterscheidungen.
Wenn der Link in dem Formular ist, schreibst du in den Link
<a href="#" OnClick="submit(); return false;">...

Wenn der Link ausserhalb des Formular ist, musst du das Formular angeben.
Wenn du keinen Namen im Form-Tag angegeben hast, kannst du es mit der ID ansprechen, d.h. Von oben herrab fängt es mit 0 an.
Wenn du einen Namen angibst, kannst du es ganz normal ansprechen.
document.Form_name.submit();
oder
document.forms[Form_ID].sumbit();


Poste einfach mal dein Script, dann schau ich mir die genaue Lösung an.

c4
30.12.2003, 10:06:20
Klappt mit keiner dieser Varianten:
document.getElementById('ding').submit();
document.forms[0].submit();
document.forms['ding'].submit();
Liegt z.B. daran, dass ich dem Ding kein name-Attribut geben will - mag der W3-Validator nicht.

Du findest das Elend unter http://dbCF.de/t-abkuerzungen-hinzufuegen/ Dort bei Abkürzung und Wortlaut etwas eingeben, was es garantiert noch nicht gibt und dann sollte man auf der nächsten Seite theoretisch automatisch weitergeleitet werden. Inzwischen kommt keine Fehlermeldung mehr, da auskommentiert. Naja, siehst Du ja alles im Quelltext.

Nev
30.12.2003, 11:15:59
Ich schau es mir mal an.

René_M
01.01.2004, 08:23:21
Hi c4,

wie siehts hiermit aus?

<html>
<head>

</head>
<body>

<form action="./index.php?topic=abkuerzungen-hinzufuegen" method="post">
<input type="button" value="senden" onClick="document.forms[0].submit();" />
</form>

<a href="javascript:document.forms[0].submit();">senden</a>

</body>
</html>

PS: Leerzeichen im <a href zwischen java und script gehört da nicht hin macht das Forum leider so ;-).

c4
01.01.2004, 10:02:34
Ich will ja eine automatische Weiterleitung. Ich weiß, steht nicht da.

Nev und ich sind mehr oder weniger zu dem Entschluss gekommen, dass ich wohl nicht mit der ID arbeiten kann. Da wird wohl das Attribut name dran glauben müssen.

René_M
01.01.2004, 12:57:18
hi c4,

was verstehst du in deinem Fall unter auto. Weiterleitung? Und wieso soll das mit forms[index] nicht gehen? Solange sich über diesem <form nicht noch ein Form einschleicht stimmt doch der index = 0.

Und das topic was du über aktion="?topic..." mit gibst mußt du in der nächsten Seite mit $_GET abfragen die Felder im Form mit $_POST

c4
01.01.2004, 19:40:13
was verstehst du in deinem Fall unter auto. Weiterleitung? Der Browser soll einfach zur nächsten Seite weiterleiten. Wozu halt location.href gedacht ist.
Und wieso soll das mit forms[index] nicht gehen? Solange sich über diesem <form nicht noch ein Form einschleicht stimmt doch der index = 0. Warum es nicht geht weiß ich auch nicht, es geht einfach nicht. Würde auch gerne mal wissen, was den sein Problem ist.

René_M
01.01.2004, 21:44:07
Hi c4,

wie sieht es mit dem Codeschnipsel von oben aus wenn du das einfach mal für deinen Code in die Seite kopierst und damit mal testest?

c4
02.01.2004, 10:08:12
So, was habe ich denn jetzt alles probiert....
Immer: <form action='..' method='..' name='ding2' id='ding'>

<input type='button' onClick="document.forms['ding'].submit();" value='testbutton' />
<input type='button' onClick="document.forms['ding2'].submit();" value='testbutton' />
<input type='button' onClick="document.forms[0].submit();" value='testbutton' />
<input type='button' onClick="document.ding.submit();" value='testbutton' />
<input type='button' onClick="document.ding2.submit();" value='testbutton' />
<input type='button' onClick="document.getElementById('ding').submit();" value='testbutton' />
<input type='button' onClick="document.getElementsByName('ding2').submit();" value='testbutton' />

<a href="javascript:document.forms['ding'].submit();">testlink</a>
<a href="javascript:document.forms['ding2'].submit();">testlink</a>
<a href="javascript:document.forms[0].submit();">testlink</a>
<a href="javascript:document.ding.submit();">testlink</a>
<a href="javascript:document.ding2.submit();">testlink</a>
<a href="javascript:document.getElementById('ding').submit();">testlink</a>
<a href="javascript:document.getElementsByName('ding2').submit();">testlink</a>

Ich hab damit glaube ich alle Varianten ausprobiert, die es gibt. Keine funktioniert. Fehlermeldung lautet weiterhin so:Zeile: 92
Zeichen: 1
Fehler: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
Code: 0
URL: http://dbCF.de/index.php?topic=abkuerzungen-hinzufuegen
Schlussfolgerung: Der Fehler ist nicht an dieser Stelle zu suchen. Verdammt aber auch.

Es klappt auch in anderen Browsern nicht, also es liegt nicht am IE!

Hat noch wer eine Idee? Langsam macht's keinen Spass mehr. :(


Danke.

René_M
02.01.2004, 10:34:52
Hi c4,

ich hab oben mal noch was eingefügt, mache daraus mal eine eigenständige Seite nur mit diesem Code und dann testit. Wenn das auch nicht geht ist was an deinem System faul.

PS: eben nochmal getestet beide Sendemöglichkeiten funktionieren!

c4
02.01.2004, 10:42:42
Wie zu erwarten funktioniert so ein verstümmeltes Beispiel. Ich zerlege jetzt mal die Ausgabe meiner Website. Schritt für Schritt was löschen und probieren, ob es dann klappt....

René_M
02.01.2004, 10:44:39
... noch ein Nachtrag ich habe eben zzz hinzugefügt senden funktioniert bei mir auf deiner Seite!

PS: habe mir mal den Quellcode der besagten Seite geholt dann bekomme ich auch deine Fehlermeldung.

c4
02.01.2004, 10:54:57
Original geschrieben von René_M
... noch ein Nachtrag ich habe eben zzz hinzugefügt senden funktioniert bei mir auf deiner Seite! Ach Du warst das! :) Ja, senden funzt. Ist ja auch 'bloß' ein submit-Button.


Heureka!! Das Problem ist, dass man id keinen Bezeichner geben darf, den es als Tag gibt. Entsprechendes Beispiel:<input type='submit' id='submit' value='Abk&uuml;rzung hinzuf&uuml;gen' style='width:150px;' />

Das ändere ich jetzt einfach ab und schon klappt's mit dem submit().

Jetzt macht's wieder Spass. :)


Danke Euch!



Edit: Hab's geändert und es klappt.

René_M
02.01.2004, 11:06:37
Hi c4,

lasse mal den roten Code weg. ;-)

<html>
<head>

</head>
<body>

<form action='./index.php?topic=abkuerzungen-hinzufuegen' method='post'>
<input type='hidden' name='topic' value='abkuerzungen-hinzufuegen' />
<input type='hidden' name='action' value='2' />
<input type='hidden' name='request' value='zzzzz' />
<input type='hidden' name='mean' value='zzzzzzzzzzzzzzz' />
<input type='hidden' name='desc' value='zzzzzzzzzzzz' />
<input type='submit' id='submit' value='Abk&amp;uuml;rzung hinzuf&amp;uuml;gen' style='width:150px;' />
</form>

<a href="javascript:document.forms[0].submit();">test</a>

</body>
</html>

ops. warst schneller als ich.