Andreas Gaisbauer
Erfahrenes Mitglied
Hallo zusammen,
also entweder ich bin montags noch nicht ganz aufnahmefähig, oder der IE 6.0 SP1 hat ernsthafte probleme...
Also follgendes: Ich hab in einem Formular 6 Select Felder mit jeweils 3 Einträgen. Von diesen 18 Einträgen darf aber nur immer einer selected sein. Ok, mein erster Versuch: onchange speichere ich das ausgewählte Element in einer Variablen. Dannach gehe ich in einer Schleife alle Einträge durch und setzte (sofern der selectedIndex != -1 ist) das feld auf false, nach dem Motto feld[feld.selectedIndex].selected = false. IE und Opera - kein Problem - IE ignoriert selected = false komplett .
Zweiter Versuch: Ich merke mir wieder (bei onchange) das selektierte Element und rufe dannach ein reset() auf das Form-Objekt auf und setze das selektierte Element auf selected. Läuft auch wieder im IE und Opera problemlos, aber - wie könnte es anders sein - im IE nicht. Ich häng mal den Code an...
So, wo ist mein Fehler? Ich sehe keinen - auch keinen Logischen. Lustigerweise ist als vorgabe, das es NUR im IE >= 5.5 laufen muss .
Ich schreib in der Zwischenzeit einen dreckigen Workaround (über innerHTML), aber eigentlich möchte ich den nicht in der Live Version benutzen müssen...
bye bye
also entweder ich bin montags noch nicht ganz aufnahmefähig, oder der IE 6.0 SP1 hat ernsthafte probleme...
Also follgendes: Ich hab in einem Formular 6 Select Felder mit jeweils 3 Einträgen. Von diesen 18 Einträgen darf aber nur immer einer selected sein. Ok, mein erster Versuch: onchange speichere ich das ausgewählte Element in einer Variablen. Dannach gehe ich in einer Schleife alle Einträge durch und setzte (sofern der selectedIndex != -1 ist) das feld auf false, nach dem Motto feld[feld.selectedIndex].selected = false. IE und Opera - kein Problem - IE ignoriert selected = false komplett .
Zweiter Versuch: Ich merke mir wieder (bei onchange) das selektierte Element und rufe dannach ein reset() auf das Form-Objekt auf und setze das selektierte Element auf selected. Läuft auch wieder im IE und Opera problemlos, aber - wie könnte es anders sein - im IE nicht. Ich häng mal den Code an...
PHP:
<html>
<head>
<script type="text/javascript">
var DEMO_TOUREN = 3;
function setValues(){
for(var x=1; x<=6; x++){
for(var y=0; y<DEMO_TOUREN; y++){
var obj = document.getElementById('p'+x);
var tour = new Option('DEMOTOUR'+x+y,x+y,false,false);
obj.options[obj.length] = tour;
}
}
}
window.onload=setValues;
function setUni(elem){
var x = elem.selectedIndex;
document.tour.reset();
elem[x].selected = true;
}
</script>
</head>
<body>
<form name="tour" id="tour">
<table>
<tr>
<th>Programm 1</th>
<th>Programm 2</th>
<th>Programm 3</th>
</tr>
<tr>
<td>
<select size="5" name="p1" id="p1" onChange="setUnique(this)"></select>
</td>
<td>
<select size="5" name="p2" id="p2" onChange="setUnique(this)"></select>
</td>
<td>
<select size="5" name="p3" id="p3" onChange="setUnique(this)"></select>
</td>
</tr>
<tr>
<tr>
<th>Programm 4</th>
<th>Programm 5</th>
<th>Programm 6</th>
</tr>
<td>
<select size="5" name="p4" id="p4" onChange="setUnique(this)"></select>
</td>
<td>
<select size="5" name="p5" id="p5" onChange="setUnique(this)"></select>
</td>
<td>
<select size="5" name="p6" id="p6" onChange="setUnique(this)"></select>
</td>
</tr>
</table>
</form>
</body>
</html>
Ich schreib in der Zwischenzeit einen dreckigen Workaround (über innerHTML), aber eigentlich möchte ich den nicht in der Live Version benutzen müssen...
bye bye
Zuletzt bearbeitet: