submit() - funzt in FF, aber nicht in IE
- javascript
0 lina-0 wahsaga1 Bodo Thiesen0 flashnfantasy0
cross
0
Der Martin
0
cross
0 Cybaer
0 Sven Rautenberg
Hallo Forum,
habe schon im Archiv gesucht, aber keine klare Lösung für mein Problem gefunden, deshalb frage ich hier nochmal:
es geht um folgenden JS-Code:
<form action="./index.php?s=1&act=perso&c=4&f=1&CODE=08&id=28" name="upd6" method="POST" style="display:inline;">
<a href="#" onClick="document.forms.upd6.submit();">01.05.2006</a>
<input type="hidden" name="pressen" value="1152770314"></form>
Ich weiß, ist nicht gerade die feine englische Art, aber das ist nur ein Testscript. In FF 1.5.04 funktioniert das versenden des Formulars fehlerlos, aber im IE 6.0.2900.2180.xpsp_sp2_gdr.050501-1516 (haben die nix anderes zu tun, als sich so eine bescheuerte Versionsnummer auszudenken? :) ) kommt die Fehlermeldung: "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."
Warum, oder besser: warum gibts noch User, die IE verwenden? .. ;)
Könnte es sein, das der IE nicht damit klarkommt, dass der Link für das submit innerhalb des Formulars liegt und somit das Form für den IE noch gar nicht geladen ist, oder bin ich da auf dem Holzweg? Für Tipps wäre ich echt dankbar.
MfG
cross
moin cross :)
es geht um folgenden JS-Code:
<form action="./index.php?s=1&act=perso&c=4&f=1&CODE=08&id=28" name="upd6" method="POST" style="display:inline;">
<a href="#" onClick="document.forms.upd6.submit();">01.05.2006</a>
<input type="hidden" name="pressen" value="1152770314"></form>
Ich kann dein Problem nicht nachvollziehen. Dieses Schnipselchen "funktioniert" bei mir sowohl in FF als auch in IE (6.0.290foo). Also der Link wird zumindest ausgeführt. Da ich deine index.php nicht habe, bekomme ich hier natürlich einen Fehler.
Liegts vielleicht doch an einem anderen Teil?
liebe Grüße aus Berlin
lina-
--
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
Hallo lina,
Ich kann dein Problem nicht nachvollziehen. Dieses Schnipselchen "funktioniert" bei mir sowohl in FF als auch in IE (6.0.290foo). Also der Link wird zumindest ausgeführt. Da ich deine index.php nicht habe, bekomme ich hier natürlich einen Fehler.
Liegts vielleicht doch an einem anderen Teil?
nein, der Fehler wird in Zeile 605 erzeugt und dort steht ausschließlich dieser Code drin. An der Index.php liegts definitiv nicht.
Trotzdem Danke!
MfG
cross
Hi,
nein, der Fehler wird in Zeile 605 erzeugt und dort steht ausschließlich dieser Code drin.
<a href="#" onClick="document.forms['upd6'].submit();">01.05.2006</a>?
Vom Fehler abgesehen schließe ich mich aber meinen Vorrednern an: Ein ... Konstruktion (will ja nicht ausfallend werden >;->). Nimm einen (Submit-)Button und formatiere ihn mittels CSS so, daß er wie ein Link aussieht. Und wenn Du einen Hover-Effekt brauchst: *Den* kann man auf dem IE ja dann mit JS machen.
Gruß, Cybaer
hi,
<a href="#" onClick="document.forms.upd6.submit();">01.05.2006</a>
In FF 1.5.04 funktioniert das versenden des Formulars fehlerlos, aber im IE 6.0.2900.2180.xpsp_sp2_gdr.050501-1516 (haben die nix anderes zu tun, als sich so eine bescheuerte Versionsnummer auszudenken? :) ) kommt die Fehlermeldung: "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."
Hast du irgendein anderes Element mit dem Namen/der ID "submit" im Formular?
gruß,
wahsaga
moin wahsaga :)
Hast du irgendein anderes Element mit dem Namen/der ID "submit" im Formular?
Wo du diese Frage grad stellst, fällt mir auch ein, dass ich mal ein ähnlich gelagertes Problem hatte. Und zwar hatte ich an einer ganz anderen Stelle der Datei eine Id namens "action". Damit kommt der IE auch gar nicht zurande.
liebe Grüße aus Berlin
lina-
Hi lina,
Wo du diese Frage grad stellst, fällt mir auch ein, dass ich mal ein ähnlich gelagertes Problem hatte. Und zwar hatte ich an einer ganz anderen Stelle der Datei eine Id namens "action". Damit kommt der IE auch gar nicht zurande.
nein, auch nicht.
MfG
cross
Hallo wahsaga,
Hast du irgendein anderes Element mit dem Namen/der ID "submit" im Formular?
nope, sicher nicht, denn dann würde auch FF meckern - da klappt es aber problemlos :/
MfG
cross
hi,
Hast du irgendein anderes Element mit dem Namen/der ID "submit" im Formular?
nope, sicher nicht, denn dann würde auch FF meckern
Beim Namen schon - bei einer ID aber nicht.
gruß,
wahsaga
<a href="#" onClick="document.forms.upd6.submit();">01.05.2006</a>
Was habt ihr eigentlich alle gegen
<input type="submit" value="01.05.2006"/>
?
Für so einen Unsinn wird man dann gezwungen, JavaShit einzuschalten, onwohl's mindestens genausogut auch ohne ginge.
Gruß, Bodo
Hallo Bodo!
Was habt ihr eigentlich alle gegen
<input type="submit" value="01.05.2006"/>
Weil vielen, denen ich bisher über den Weg lief, nicht klar ist, dass man mittels CSS einen Button fast wie einen Link aussehen lassen kann. (Nur eben keine Hover Effekte im IE)
Schönen Gruß
Afra
Hallo afra,
Weil vielen, denen ich bisher über den Weg lief, nicht klar ist, dass man mittels CSS einen Button fast wie einen Link aussehen lassen kann. (Nur eben keine Hover Effekte im IE)
Umgekehrt.
Beste Grüße
Hallo afra,
Dumme Frage: Was meinst Du damit?
Les nochmal genau:
"[...] dass man mittels CSS einen Button fast wie einen Link aussehen lassen kann."
Ich sage: du meintest es umgekehrt.
Beste Grüße
Hallo!
Ich sage: du meintest es umgekehrt.
Nein, ich meinte, dass man einen Button wie einen Anker aussehen lassen kann und es daher unnötig ist, einen Anker mit JavaScript für einen Submit zu benutzen. Lies nochmals genauer. ;) (Ausser eben den HOVER-Effekten)
Schönen Gruß
Afra
Hallo Bodo,
Was habt ihr eigentlich alle gegen
<input type="submit" value="01.05.2006"/>
Gegenfrage: Was habt ihr eigentlich alle gegen
<button type="submit">
<img src=... alt=..>Text neben dem Bild
<p>
Sogar ein neuer Absatz
</p>
</button>
Beste Grüße
Hallo Richard,
Gegenfrage: Was habt ihr eigentlich alle gegen
ich hab gar nichts gegen buttons, ehr im Gegenteil. ABER mache Applikationen erfordern, das eben KEIN Button dort sein kann/darf.
Stelle Dir eine Tabelle vor, in der Termine als Datum stehen. Wenn ein Termindatum verfallen ist, dann ist es lt. Vorgabe nötig, dieses Datum zu kennzeichnen (roter Hintergrund). Gleichzeitig muss man dann einfach auf dieses verfallene Datum klicken können, um es neu zu setzen. Es sieht schlicht scheisse aus, wenn in einer Tabelle mit lauter Daten auf einmal Buttons dazwischen sind.
Wäre das Grund genug? .. ;-)
MfG
cross
Hallo Richard,
Gegenfrage: Was habt ihr eigentlich alle gegen
ich hab gar nichts gegen buttons, ehr im Gegenteil. ABER mache Applikationen erfordern, das eben KEIN Button dort sein kann/darf.
Dann ersetze mit JavaScript den button durch einen Link. Wenn JavaScript da ist, stört diese Vorgehensweise nicht, und wenn JavaScript nicht da ist, ist die Seite wenigstens noch benutzbar.
Stelle Dir eine Tabelle vor, in der Termine als Datum stehen. Wenn ein Termindatum verfallen ist, dann ist es lt. Vorgabe nötig, dieses Datum zu kennzeichnen (roter Hintergrund). Gleichzeitig muss man dann einfach auf dieses verfallene Datum klicken können, um es neu zu setzen. Es sieht schlicht scheisse aus, wenn in einer Tabelle mit lauter Daten auf einmal Buttons dazwischen sind.
Weniger scheiße ist es hingegen, wenn einfach alle Daten als Buttons angezeigt werden. Außerdem kann man Buttons mittels CSS wie Links aussehen lassen, auch von daher sehe ich da nicht wirklich ein Argument.
Wäre das Grund genug? .. ;-)
Nö
Gruß, Bodo
Hallo cross!
Stelle Dir eine Tabelle vor, in der Termine als Datum stehen. Wenn ein Termindatum verfallen ist, dann ist es lt. Vorgabe nötig, dieses Datum zu kennzeichnen (roter Hintergrund). Gleichzeitig muss man dann einfach auf dieses verfallene Datum klicken können, um es neu zu setzen. Es sieht schlicht scheisse aus, wenn in einer Tabelle mit lauter Daten auf einmal Buttons dazwischen sind.
Hättest Du eines meiner anderen Postings gelesen, dann wüsstest Du, was man als Webentwickler eigentlich sowieso wissen sollte, dass man mittels CSS Buttons wunderbar wie einen normalen Link aussehen lassen kann. Sogar die Hintergrundfarbe kann man ändern. (wirklich! *SCNR)
Schönen Gruß
Afra
Hallo.
Hättest Du eines meiner anderen Postings gelesen, dann wüsstest Du, was man als Webentwickler eigentlich sowieso wissen sollte, dass man mittels CSS Buttons wunderbar wie einen normalen Link aussehen lassen kann. Sogar die Hintergrundfarbe kann man ändern. (wirklich! *SCNR)
Einen Browser, der das mitmacht, natürlich vorausgesetzt.
MfG, at
Hallo at.
Hättest Du eines meiner anderen Postings gelesen, dann wüsstest Du, was man als Webentwickler eigentlich sowieso wissen sollte, dass man mittels CSS Buttons wunderbar wie einen normalen Link aussehen lassen kann. Sogar die Hintergrundfarbe kann man ändern. (wirklich! *SCNR)
Einen Browser, der das mitmacht, natürlich vorausgesetzt.
Und einen „richtigen“ http://de.selfhtml.org/html/formulare/klickbuttons.htm#modern@title=Button natürlich auch vorausgesetzt.
Einen schönen Montag noch.
Gruß, Ashura
Hi,
Gegenfrage: Was habt ihr eigentlich alle gegen
<button type="submit">
Button ist problematisch, da IE nicht korrekt damit umgehen kann (statt des values wird der content gesendet, bei mehreren <button type="submit"> wird nicht nur der benutzte gesendet, sondern alle, ...)
cu,
Andreas
Hallo Bodo,
Für so einen Unsinn wird man dann gezwungen, JavaShit einzuschalten, onwohl's mindestens genausogut auch ohne ginge.
als einen der wichtigsten Gründe kann ich dir nennen: Mit JS kann man bei einer sehr umfangreichen Site mit vielen Usern ne ganze Menge Serverlast sparen. Natürlich kann man das auch ohne machen, aber dann wird bspw jede Überprüfung eines Formulars an den Server geschickt, um es mit php zu checken - das erzeugt ne Menge unnötigen Traffic, im Gegensatz zu JS, dass das Form erstmal clientseitig prüft, bevor es abgeschickt wird. JS selbst ist sehr nützlich - unnütze sind dagegen Programmierer, die damit böse Sachen machen.
MfG
cross
Hallo cross!
als einen der wichtigsten Gründe kann ich dir nennen: Mit JS kann man bei einer sehr umfangreichen Site mit vielen Usern ne ganze Menge Serverlast sparen.
Das mag der einzige Grund sein. Ohne JavaScript funktioniert aber beim vorgenannten Beispiel das Formular überhaupt nicht mehr. Daher sollte man _nur_ die Validierung onsubmit (im Form Tag) ausführen und eine Fallbackimplementierung serverseitig haben, die die Inhalte nochmals testet.
Schönen Gruß
Afra
als einen der wichtigsten Gründe kann ich dir nennen: Mit JS kann man bei einer sehr umfangreichen Site mit vielen Usern ne ganze Menge Serverlast sparen.
Das mag der einzige Grund sein. Ohne JavaScript funktioniert aber beim vorgenannten Beispiel das Formular überhaupt nicht mehr. Daher sollte man _nur_ die Validierung onsubmit (im Form Tag) ausführen
Womit Du Deinen ersten Satz bereits selbst wiederlegt hättest ;)
und eine Fallbackimplementierung serverseitig haben, die die Inhalte nochmals testet.
Um die Serverseitige überprüfung kommt man sowieso nicht herum, weil ich mir sonst den HTML-Code anschaue und dann mittels netcat oder mit anderen ähnlichen Methoden absichtlich falsche Daten abliefere.
Gruß, Bodo
Hallo Bodo!
als einen der wichtigsten Gründe kann ich dir nennen: Mit JS kann man bei einer sehr umfangreichen Site mit vielen Usern ne ganze Menge Serverlast sparen.
Das mag der einzige Grund sein. Ohne JavaScript funktioniert aber beim vorgenannten Beispiel das Formular überhaupt nicht mehr. Daher sollte man _nur_ die Validierung onsubmit (im Form Tag) ausführen
Womit Du Deinen ersten Satz bereits selbst wiederlegt hättest ;)
Nein, denn dann kann das Forumular dennoch abgesendet werden. Bei einem reinen JavaScript Anker aber nicht. Wieso wiederhole ich mich eigentlich dauernd? In meinem Satz meinte ich natürlich mit "vorgenannt" den OP.
Schönen Gruß
Afra
Nein, denn dann kann das Forumular dennoch abgesendet werden. Bei einem reinen JavaScript Anker aber nicht.
Ja, hast recht, hab da zu oberflächlich gelesen. Natürlich braucht man JS, nur eben nicht im Anker ...
Gruß, Bodo
hi,
als einen der wichtigsten Gründe kann ich dir nennen: Mit JS kann man bei einer sehr umfangreichen Site mit vielen Usern ne ganze Menge Serverlast sparen.
Was hat das mit dem konkreten Fall zu tun, wo du aus rein optischen Gründen kein Formularelement verwenden magst?
JS selbst ist sehr nützlich - unnütze sind dagegen Programmierer, die damit böse Sachen machen.
Also du, in diesem Falle?
gruß,
wahsaga
hi,
als einen der wichtigsten Gründe kann ich dir nennen: Mit JS kann man bei einer sehr umfangreichen Site mit vielen Usern ne ganze Menge Serverlast sparen.
Was hat das mit dem konkreten Fall zu tun, wo du aus rein optischen Gründen kein Formularelement verwenden magst?
JS selbst ist sehr nützlich - unnütze sind dagegen Programmierer, die damit böse Sachen machen.
Also du, in diesem Falle?
gruß,
wahsaga
wer lesen kann, ist klar im Vorteil. Es ging um die Grundsatzfrage JS oder nicht JS und hatte, wie du ganz richtig bemerktest, nichts mit dem eigentlichen Thema zu tun. Trotzdem Antworte ich aus gegebener Höflichkeit ab und zu auf Postings, die Off-Topic sind.
MfG
cross
hi,
Trotzdem Antworte ich aus gegebener Höflichkeit ab und zu auf Postings, die Off-Topic sind.
Off-Topic hast du dich zuerst begeben, nachdem du auf Bodos themenbezogenen Hinweis, dass Javascript für das _konkret_ von dir vorgetragene Problem keine "Lösung", sondern vielmehr eine Einschränkung ist, dich in den Vorzügen von Javascript allgemein und zum Serverlast sparen und überhaupt (und Universum, und ganzer Rest, ...) ergingst.
gruß,
wahsaga
Nur eine Vermutung, weil ich mich an ähnliche Probleme erinnere:
1. Ist der Ref innerhalb des Formulars, also ein echter Nachkomme innerhalb der DOM-Hierarchie ?
2. Gibt es neben dem Link auch noch den Submit-Button (den mal probeweise rausnehmen, und dann nochmals versuchen).
Gruß, Flash
Hallo zusammen,
<form action="./index.php?s=1&act=perso&c=4&f=1&CODE=08&id=28" name="upd6" method="POST" style="display:inline;">
<a href="#" onClick="document.forms.upd6.submit();">01.05.2006</a>
<input type="hidden" name="pressen" value="1152770314"></form>
Habe die Lösung gefunden:
~~~html
<form action="./index.php?s=7d9f2416b36ddc3cf9282b72d065abb8&act=perso&c=4&f=1&CODE=08&id=28" name="upd6" method="POST" style="display:inline;"><a href="javascript:document.getElementsByName('upd6')[0].submit();" >26.10.2005</a><input type="hidden" name="pressen" value="1152785470"></form>
Diese Version klappt in beiden Browsern.
MfG
cross
Mahlzeit,
<form action="./index.php?s=7d9f2416b36ddc3cf9282b72d065abb8&act=perso&c=4&f=1&CODE=08&id=28" name="upd6" method="POST" style="display:inline;"><a href="javascript:document.getElementsByName('upd6')[0].submit();" >26.10.2005</a><input type="hidden" name="pressen" value="1152785470"></form>
diese Lösung ist immer noch suboptimal, weil sie zwingend auf Javascript aufbaut, anstatt die durch HTML gegebenen Möglichkeiten von HTML zu nutzen.
Diese Version klappt in beiden Browsern.
"beiden"?
Ich kenne selbst schon deutlich mehr als zwei Browser. Und das ist sicher nur ein kleiner Bruchteil der tatsächlich existierenden ...
Ciao,
Martin
Hallo Martin,
Diese Version klappt in beiden Browsern.
"beiden"?
Ich kenne selbst schon deutlich mehr als zwei Browser. Und das ist sicher nur ein kleiner Bruchteil der tatsächlich existierenden ...
klar hast Du recht. Aber in diesem Thema bezog ich mich nur auf diese beiden. Vielleicht hätte ich dazuschreiben sollen, das es sich bei diesem Projekt um ein Firmenintranet handelt, das mit in keinster Weise mit dem Internet verbunden ist. Und in dieser Firma gibt es nur FF und IE. :)
MfG
cross
Hi,
Habe die Lösung gefunden:
Na, wenigstens ist dir die Schreibweise von DOM Level 2 geläufig. Wie es mit DOM Level 0 aussieht hättest Du auch meinem Posting entnehmen können ...
Diese Version klappt in beiden Browsern.
Sofern es sich nicht um IE 4 oder älter handelt. Du bist sicher, daß wer solch "altertümlichen" Code verwendet, nicht auch so alte Browser hat? >>;->
Gruß, Cybaer
Moin!
<form action="./index.php?s=1&act=perso&c=4&f=1&CODE=08&id=28">
Diese action-URL ist falsch codiert. Es gibt keine Entities &act;, &c; und so weiter, der mangelnden Fehlerkorrektur der Browser sei Dank, dass deshalb die &-Zeichen korrekt durchgelassen werden.
Korrekt wäre, alle &-Zeichen als & in der URL zu schreiben. Zum Beweis empfehle ich einfach nur mal, einen Parameter "copy" durchschleusen zu wollen.
- Sven Rautenberg
--
"Love your nation - respect the others."