JS Problem mit IE
Sven
- javascript
Hallo!
Ich benutze ein kleines JS-Script, dass mir den Wert des Action-Parameters setzen soll. Im FF funktioniert das auch einwandfrei. Im IE (6 und 7)leider nicht. JS habe ich dort natürlich auch aktiviert!
Hat jemand ne Idee woran das liegen könnte?
<SCRIPT language=JavaScript>
function setAction(frm, target){
var form = document.getElementById(frm);
form.action.value=target;
}
</SCRIPT>
Der Aufruf über:
<html:submit onclick="setAction('ExampleForm', 'reload');" styleClass="button">
<bean:message key="orderLabel.button-anzahl"/>
</html:submit>
Hallo,
Hallo!
Ich benutze ein kleines JS-Script, dass mir den Wert des Action-Parameters setzen soll. Im FF funktioniert das auch einwandfrei. Im IE (6 und 7)leider nicht. JS habe ich dort natürlich auch aktiviert!Hat jemand ne Idee woran das liegen könnte?
<SCRIPT language=JavaScript>
function setAction(frm, target){
var form = document.getElementById(frm);
form.action.value=target;
}
</SCRIPT>
also erstens heist das type="text/javascript". language kann zwar verwendet werden, aber grundsätzlich wir ein type-attribut benötigt...
zweitens: wieso schreibst du:
> var form = document.getElementById(frm);
> form.action.value=target;
einfacher ist es doch
~~~javascript
document.getElementById(frm)action.value=target;
oder?
Der Aufruf über:
<html:submit onclick="setAction('ExampleForm', 'reload');" styleClass="button">
<bean:message key="orderLabel.button-anzahl"/>
</html:submit>
was bedeutet das? (<bean> ist mir völlig unbekannt...)
MfG. Christoph Ludwig
--
Wo die Sprache aufhört, fängt die Musik an...
Selfcode: ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
Go to [this](http://home.arcor.de/minicrispie/index.html)
@@minicrispie:
language kann zwar verwendet werden,
In den Varianten Transitional und Frames ja, in Strict nicht.
aber grundsätzlich wir ein type-attribut benötigt...
http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=Ja.
Live long and prosper,
Gunnar
Hallo,
@@minicrispie:
language kann zwar verwendet werden,
In den Varianten Transitional und Frames ja, in Strict nicht.
aha ... also das ist mir völlig neu ^^
man lernt nie aus ^^
Informatiker - LLL - Life Long Learning
MfG. Christoph Ludwig
@@minicrispie:
language kann zwar verwendet werden,
In den Varianten Transitional und Frames ja, in Strict nicht.
aha ... also das ist mir völlig neu ^^
man lernt nie aus ^^
DTDs lesen bildet.
Achso, das willst du ja nicht.
Live long and prosper,
Gunnar
Hallo,
DTDs lesen bildet.
Achso, das willst du ja nicht.
naja ... in der Schule will ich noch mit einem ohr zuhören ... nur wenn ich lese kann ich das nicht.
MfG. Christoph Ludwig
Hallo!
Danke für eure Antworten und die Aufklärung bzgl. 'language='..
@Java:
Ich dachte Java ist ein Art Slang für eine Tasse Kaffee. (Das mit der Bohne Stimmt natürlich auch, obwohl jeder brave Java-Entwickler weiß, dass Java auch eine Insel ist ;) )
Zurück zum Thema:
Die Änderung hat leider keinen Erfolg gebracht.
Ich beabsichtige mit dem Script, den Parameter namens 'action' auf nen bestimmten Wert zu setzen.
Klicke ich auf den Button gelange ich auch in das Script (mit window.alert getestet) allerdings wird der Parameter nciht gesetzt und Tomcat bringt mir den Fehler '...does not contain method named '
<script type="text/javascript">
function setAction(frm, target){
window.alert(target);
document.getElementById(frm).action.value=target;
window.alert(document.getElementById(frm).action.value);
}
Wird der Code ausgeführt bringt mir der FF 2x die Box mit dem Inhalt 'reload', der IE aber 1x 'reload' und das zweit mal 'undefined'.
Das heißt diese Zuweisung will der IE irgendwie nicht machen.
Irgendwelche Vorschläge?
@@Sven:
Die Änderung hat leider keinen Erfolg gebracht.
Welche Änderung?
Ich beabsichtige mit dem Script, den Parameter namens 'action' auf nen bestimmten Wert zu setzen.
Ich sehe keine Änderung, die auf das von Dem Martin Gesagte eingehen würde.
Live long and prosper,
Gunnar
Hi Gunnar,
meine Änderung war -><script type="text/javascript">
und nicht language=...
Die Anmerkungen von Martin hießen:
"..dass Elementnamen üblicherweise klein geschrieben werden und Attributwerte in Anführungszeichen stehen sollten (in XHTML ist beides Pflicht)"
Ich hab jetzt die styleID für die Form klein geschrieben.
<html:submit onclick="setAction('exampleform', 'reload');" styleClass="button"> <bean:message key="orderLabel.button-anzahl"/> </html:submit>
Wars das oder steh ich grad tierisch aufm Schlauch?
Die andere Anmerkung war das mit dem ".value". Das passt schon, will ja den Wert setzen. Im FF geht es ja auch. Also funktioniert diese Technik ja schon mal grundsätzlich.
Grüße
@@Sven:
Die Anmerkungen von Martin hießen:
"..dass Elementnamen üblicherweise klein geschrieben werden und Attributwerte in Anführungszeichen stehen sollten (in XHTML ist beides Pflicht)"
Lies mal weiter in seinem Posting.
Live long and prosper,
Gunnar
Hallo!
Auch dazu habe ich Stellung genommen.
Hier das ganze Posting:
Hi,
<SCRIPT language=JavaScript>
zum language-Attribut hat minicrispie schon was gesagt; beachte bitte auch, dass Elementnamen üblicherweise klein geschrieben werden und Attributwerte in Anführungszeichen stehen sollten (in XHTML ist beides Pflicht).
form.action.value=target;
Was verstehst du unter form.action.value? Du möchtest einfach nur form.action setzen.
<html:submit onclick="setAction('ExampleForm', 'reload');" styleClass="button">
<bean:message key="orderLabel.button-anzahl"/>
</html:submit>
>
> Was immer das ist - HTML ist es nicht.
>
> So long,
> Martin
>
@value
Das stimmt schon so, ich will ja den value des action-Parameters setzen. Wie gesagt funktioniert es ja prinzipiell, nur halt nicht mit dem IE.
@Html:
Das es kein HTML ist wurde ja schon geklärt. Das erzeugte HTML sieht so aus:
~~~html
<input type="submit" value="senden" onclick="setAction("exampleform", "reload");" class="button">
Qapla'
Sven
@Html:
Das es kein HTML ist wurde ja schon geklärt. Das erzeugte HTML sieht so aus:
<input type="submit" value="senden" onclick="setAction("exampleform", "reload");" class="button">
Das ist kein gültiges HTML!
Struppi.
@Html:
Das es kein HTML ist wurde ja schon geklärt. Das erzeugte HTML sieht so aus:
<input type="submit" value="senden" onclick="setAction("exampleform", "reload");" class="button">
>
> Das ist kein gültiges HTML!
>
> Struppi.
Ups, so heißt es natürlich:
~~~html
<input type="submit" value="senden" onclick="setAction('exampleform', 'reload');" class="button">
Struppi.
Bitte zitiere nur das worauf du antwortest, Danke!
Ups, so heißt es natürlich:
Nach dem schon dein JS ungültig war, wäre es aber nicht verwunderlich gewesen.
<input type="submit" value="senden" onclick="setAction('exampleform', 'reload');" class="button">
Einmal ist das umständlich, da du hier auch this.form aufrufen kannst und damit auf den Namen des Formualres verzichten und dann ist nicht klar was reload ist.
~~~html
<input type="submit" value="senden" onclick="setAction(this.form, 'reload');" class="button">
function setAction(form, target){
form.action = target;
}
target muss natürlich eine URL sein, die erreichbar ist.
Struppi.
Also, ich setzte mit dem JS den Parameter 'action' anhand dem entschieden wird welche Funktion in meiner Action-Klasse (Java) aufgerufen wird. Die Funktion heißt also 'reload'.
Erreichen tue ich damit, dass ich eine Form senden kann, die dann versch. Java-Funktionen anstößt, jenachdem welcher Button geklickt wurde.
<html:form styleId="exampleform" action="Example.do">
...
<html:submit onclick="setAction('exampleform', 'reload');" styleClass="button">
sende1 </html:submit>
...
<html:submit onclick="setAction('exampleform', 'sende');" styleClass="button">
sende2 </html:submit>
Danke übrigens für den Tipp mit dem this!
Also, ich setzte mit dem JS den Parameter 'action' anhand dem entschieden wird welche Funktion in meiner Action-Klasse (Java) aufgerufen wird. Die Funktion heißt also 'reload'.
Du kannst mit JS keine Java Funktionen aufrufen. In action muss eine aufrufbare Adresse stehen.
Erreichen tue ich damit, dass ich eine Form senden kann, die dann versch. Java-Funktionen anstößt, jenachdem welcher Button geklickt wurde.
das erreicht man üblicherweise durch CGI Parameter und deren Auswertung
Struppi.
Also würde ich das per Hand eingeben würde der Aufruf im Browser z.B. lauten:
http://localhost:8080/Bla/Example.do?action=reload
Klicke ich jetzt auf den submit-Button wird die Form mit action="Example.do" abgeschossen.
Da jetzt auch noch mit JS der Parameter 'action' mit dem Wert 'reload' belegt wird, wird in meiner Actionklasse (Stichwort Dispatchaction), die Funktion 'reload' aufgerufen.
Hoffe ist verständlich geworden.
Auf jeden Fall funktioniert es ja grundsätzlich. Also FF kann das und es funktioniert ohne Probleme. Aber mim IE wills halt net. Ich weiß halt einfach nicht wieso das nicht geht.
Hi,
Also würde ich das per Hand eingeben würde der Aufruf im Browser z.B. lauten:
http://localhost:8080/Bla/Example.do?action=reloadKlicke ich jetzt auf den submit-Button wird die Form mit action="Example.do" abgeschossen.
Da jetzt auch noch mit JS der Parameter 'action' mit dem Wert 'reload' belegt wird, wird in meiner Actionklasse (Stichwort Dispatchaction), die Funktion 'reload' aufgerufen.
Du redest also die ganze Zeit von einem Formularfeld mit dem Namen name="action"?
Das ist ja kein Wunder, wenn das beim Zugriff auf formularelement.action mit dem action-Attribut des Formulars kollidiert.
MfG ChrisB
Hi,
<SCRIPT language=JavaScript>
zum language-Attribut hat minicrispie schon was gesagt; beachte bitte auch, dass Elementnamen üblicherweise klein geschrieben werden und Attributwerte in Anführungszeichen stehen sollten (in XHTML ist beides Pflicht).
form.action.value=target;
Was verstehst du unter form.action.value? Du möchtest einfach nur form.action setzen.
<html:submit onclick="setAction('ExampleForm', 'reload');" styleClass="button">
<bean:message key="orderLabel.button-anzahl"/>
</html:submit>
Was immer das ist - HTML ist es nicht.
So long,
Martin
--
Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
Erfahrung bekommt man, indem man das nicht tut.
Yerf!
<html:submit onclick="setAction('ExampleForm', 'reload');" styleClass="button">
<bean:message key="orderLabel.button-anzahl"/>
</html:submit>
>
> Was immer das ist - HTML ist es nicht.
Bean = Bohne, also Kaffee, ergo: Java ;-)
(...und bei einem JavaScript-Problem genauso relevant wie PHP oder anderer serverseitiger Code)
Gruß,
Harlequin
--
<!--[if IE]>This page is best viewed with a webbrowser. [Get one today!](http://www.opera.com)<![endif]-->
Hallo,
Bean = Bohne, also Kaffee, ergo: Java ;-)
den Schritt von der Bohne zum Kaffee kann ich nachvollziehen - der vom Kaffee zu Java erschließt sich mir allerdings nicht. :-(
(...und bei einem JavaScript-Problem genauso relevant wie PHP oder anderer serverseitiger Code)
Allerdings.
Ciao,
Martin
Yerf!
Bean = Bohne, also Kaffee, ergo: Java ;-)
den Schritt von der Bohne zum Kaffee kann ich nachvollziehen - der vom Kaffee zu Java erschließt sich mir allerdings nicht. :-(
Java ist eine Kaffee-Sorte, daher auch die vielen Anlehnungen zu Kaffee beim Sun-Java (z.B. die Kaffeetasse im Logo oder eben die Java-Beans)
Gruß,
Harlequin