Glaendi
Mitglied
Registriert: 25.07.2006
Beiträge: 6
|
|
Erstmal vorneweg, vielen Dank für Hilfe bei meinem anderen Problem, aber das hier bekomm ich einfach nicht hin.
Ich will doch nur, dass das Auswahlfeld den Wert annimmt der an ihn übergeben wird. Im Firefox haut das auch ganz toll hin. Der IE macht jedoch ab und an einige Macken. Der sagt dann immer "Fehlerie selected Eigenschaft konnte nicht festgelegt werden."
Code:
for (var i=0; i<document.form1.musik.options.length; i++){
if (document.form1.musik.options[i].value == sound){
document.form1.musik.options[i].selected=true;
}
else{
document.form1.musik.options[i].selected=false;
}{ |
Wie würdet ihr sowas schreiben, oder hat mein IE vielleicht nur ne Macke??
|
|
| 25.07.2006 18:36:48 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, auf dem ersten Blick erkenne am Ende }{, kann es sein das es }} sein sollte ? Ansonsten kann die Sache nicht richtig funktionieren, da nach dem setzen von selected=true die Schleife weiterläuft und danach selected=false ausgeführt werden könnte, was zu Problemen führen könnte. Ich würde die Schleife nach selected=true beenden.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 25.07.2006 18:59:19 |
|
Glaendi
Mitglied
Registriert: 25.07.2006
Beiträge: 6
|
|
Danke für die schnelle Antwort.
Das { nach dem Ende hat nix zu sagen, da ist bei Copy&Paste was schief gegangen.
Hab es mal mit einer While-Schleife probiert, damit hat es keine Änderung gegeben. Danach hab ich es mal get und setAttribute versucht und siehe da, es funktioniert.
Code:
var i=0;
var gefunden = false;
while(i<document.form1.musik.options.length && gefunden == false){
if (document.form1.musik.options[i].getAttribute('value') == sound){
document.form1.musik.options[i].setAttribute('selected',true);
gefunden = true;
}
i++;
} |
Jedoch setz der Firefox nun das Feld nicht mehr. Und es gibt auch keine Fehlermeldung
|
|
| 25.07.2006 19:16:41 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, folgendes Beispiel funktioniert in jeden Browser: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function check(o) { var opt = document.form1.select.options; for(var i=0; i < opt.length; i++){ if(opt[i].value == o.value){ opt[i].selected=true; break; } } } </script> </head> <body> <form name="form1" method="post" action=""> <input type="button" value="test1" onclick="check(this)"><br> <input type="button" value="test2" onclick="check(this)"><br> <input type="button" value="test3" onclick="check(this)"><br> <input type="button" value="test4" onclick="check(this)"><br> <input type="button" value="test5" onclick="check(this)"><br> <input type="button" value="test6" onclick="check(this)"><br> <select name="select"> <option value="test1">test1</option> <option value="test2">test2</option> <option value="test3">test3</option> <option value="test4">test4</option> <option value="test5">test5</option> <option value="test6">test6</option> </select> </form> </body> </html>
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 25.07.2006 19:56:01 |
|
Glaendi
Mitglied
Registriert: 25.07.2006
Beiträge: 6
|
|
Ups
Beitrag geändert von Glaendi (25.07.2006 20:27:17)
|
|
| 25.07.2006 20:25:39 |
|
Glaendi
Mitglied
Registriert: 25.07.2006
Beiträge: 6
|
|
Und warum geht meins nicht
Der Fehler in dieser Zeile:
Code:
document.form1.musik.options[i].setAttribute('selected',true) |
geht im IE
Code:
document.form1.musik.options[i].selected=true; |
geht im Firefox
oder jeweils nur mit opt[i].
Beitrag geändert von Glaendi (25.07.2006 20:30:51)
|
|
| 25.07.2006 20:26:20 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hmm, welchen Dokumententyp verwendest Du? Firefox verhält sich je nach Typ unterschiedlich. Bei XHTML funktionieren einige ältere Objekte und Methoden nicht, vor allen jene die durch DOM ersetzt werden können.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 25.07.2006 20:42:19 |
|
Glaendi
Mitglied
Registriert: 25.07.2006
Beiträge: 6
|
|
<?php echo '<?xml version="1.0" encoding="iso-8859-1" ?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Das wäre wohl eine Erklärung, aber wie bekomm ich das hin, das es mit beiden funktioniert. Aber aber ja eigentlich doch nicht, im Firfox geht ja die ältere Variante
Beitrag geändert von Glaendi (25.07.2006 21:32:42)
|
|
| 25.07.2006 21:30:06 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Die alte Version funktioniert im IE, siehe mein Beispiel. Da sitzt der Fehler bestimmt ganz woanders - poste doch mal das ganze Dokument oder einen Link.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 25.07.2006 21:51:25 |
|
Glaendi
Mitglied
Registriert: 25.07.2006
Beiträge: 6
|
|
http://213.239.198.196/~gloem/okis/okis.php
Momentan sieht das so aus:
Code:
<!-- Funktion zum Setzen der Werte im Formular -->
function felder_setzen(kneipe, strasse, nummer, telefon, handy, musik, sportsbar, x, y, nr){
document.form1.name.value=kneipe;
var opt = document.form1.strasse.options;
for(var i=0; i < opt.length; i++){
if(opt[i].value == strasse){
opt[i].selected=true;
break;
}
}
document.form1.nummer.value=nummer;
document.form1.telefon.value=telefon;
document.form1.handy.value=handy;
var opt = document.form1.musik.options;
for(var i=0; i < opt.length; i++){
if(opt[i].value == musik){
opt[i].selected=true;
break;
}
}
document.form1.sportsbar.checked=sportsbar;
document.form1.x.value=x;
document.form1.y.value=y;
document.form1.id.value=nr;
} |
Wenn wir dann schon dabei sind, meine Zoom-Funtion für das SVG-Dokument funktioniert auch noch nicht richtig :-)
|
|
| 25.07.2006 22:02:48 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|