Her er en, som jeg indtil nu (og jeg har prøvet mindst 4 gange !-) ikke har fået til at lave fejl ...
Det er selvfølgelig fodi det er udgave nr. 117 jeg kun har checket den så kort, så du skal selvfølgelig meddele mig, hvis du finder nogle fejl-funktioner ...
Normalt ville jeg faktisk love at være med til at rette evt. fejl, men efter denne tortour-de-force vil jeg ikke love andet end at jeg vil prøve at se om der ikke kan findes en løsning !-)
Iøvrigt er der ingen grænse for antallet af select-boxe, hele halløjes styres af variablen vals, som skal have det faste valg og så eet for hver af select-boxene -- du skal bare regne med at den tager voldsomt til i tidsforbrug hvis vi kommer noget højere op ...
Jeg har brugt select-box-numrene til at finde rundt i, og vi kan jo ... øeh ...
Det kan sikkert godt laves om, men hvis vi på anden måde kan finde løsninger vil jeg hellere det (en oversættelse mellem value og f.eks. text)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<title>Fjern samme sel-option</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
var vals = ["Fast valg","Valg 1","Valg 2","Valg 3","Valg 4"];
var q = opt = null, s = "";
var lastChange = 0;
function initSels(){
for(var i=1;vals.length>i;i++){
s = "sel"+i;
q = document.minForm[s];
q.length = 1;
for(j=1;vals.length>j;j++){
opt = document.createElement('OPTION');
q.appendChild(opt);
opt.value = "" + j;
opt.text = vals[j];
}
}
}
function checkSels(actSel){
var nu = new Date();
if(500>nu.getTime()-lastChange)return;
lastChange = nu.getTime();
f = actSel.form;
var sv = new Array();
var q = null;
var sval = new Array();
for(var i=1;vals.length>i;i++){
sv[i] = true;
s = "sel"+i;
q = f[s];
if(q.value==i){sv[i]=false};
sval[i] = q.value;
}
sv[0] = true;
initSels();
for(i=1;vals.length>i;i++){
s = "sel"+i;
q = f[s];
for(j=0;vals.length>j;j++)if(q.options[j].value==sval[i])q.selectedIndex=j;
for(j=q.length-1;j>0;j--){
if(j!=i&&!sv[j]&&sval[i]!=j){
q.options[j]=null;
}
}//remove eventuel anden tidligere valgt
}
}
</script>
</head>
<body onload="initSels()">
<form name="minForm">
<select name="sel1" onchange="checkSels(this);">
<option value="t" selected>Fast valg</option>
</select>
<select name="sel2" onchange="checkSels(this);">
<option value="t" selected>Fast valg</option>
</select>
<select name="sel3" onchange="checkSels(this);">
<option value="t" selected>Fast valg</option>
</select>
<select name="sel4" onchange="checkSels(this);">
<option value="t" selected>Fast valg</option>
</select>
</form>
</body>
</html>