28. februar 2004 - 14:33
Der er
3 kommentarer og
1 løsning
konfigurator med dropdown
Hej
Hvis nu jeg har nogle dropdown med nogle værdier f.eks.
Dropdown nr 1
-------------
Her kan vælges værderine A B C D
Dropdown nr 2
-------------
Hvis A C er valgt så skal X Y vises i denne dropdown
Men hvis B D er valgt så skal I K vises
Alle variable A B C D X Y I K har en værdi, og alt efter hvad der er valgt, skal der vises en samlet sum ud fra de 2 dropdown.
Nogle der har et eksempel på det?
28. februar 2004 - 15:59
#4
Det er rasende kompliceret at blive bare en lille smule generel og også tage hensyn til forskellige muligheder, men her er en, som lever op til dine krav !-)
Bemærk, at den første variabel er sammenkoblingen mellem værdier i den første og den anden select:
<script type="text/javascript">
var dropconfig = [[0,2],[1,3],[0,2],[1,3]];//4 arrays med de options fra sel2, som er gyldige til hver sel1-option
var drop = [[5,10,15,20],[0.2,0.3,0.4,0.5]];//Gyldige værdier i de to selects
function initSels(){
var sel = document.form1.sel1;
sel.length=0;
var newOpt = document.createElement("OPTION")
sel.appendChild(newOpt);
newOpt.text = "-- Vælg --";
for(i=0;drop[0].length>i;i++){
newOpt = document.createElement("OPTION")
sel.appendChild(newOpt);
newOpt.text = drop[0][i];
newOpt.value = drop[0][i];
}
sel = document.form1.sel2;
sel.length=0;
newOpt = document.createElement("OPTION")
sel.appendChild(newOpt);
newOpt.text = "\74\74 Vælg --";
}
function ch(sel){
var sel2 = sel.form.sel2;
if(sel.selectedIndex==0){
sel.form.resultat.value = "";
sel2.length=0;
newOpt = document.createElement("OPTION")
sel2.appendChild(newOpt);
newOpt.text = "\74\74 Vælg --";
}else{
var val = null;
if(sel2.length>1&&sel2.selectedIndex>0)
val = +sel2.value;
sel2.length=0;
newOpt = document.createElement("OPTION")
sel2.appendChild(newOpt);
newOpt.text = "-- Vælg --";
sval = sel.selectedIndex - 1;
for(i=0;dropconfig[sval].length>i;i++){
newOpt = document.createElement("OPTION")
sel2.appendChild(newOpt);
newOpt.text = drop[1][dropconfig[sval][i]];
newOpt.value = drop[1][dropconfig[sval][i]];
if(newOpt.value == val){
newOpt.selected = true;
sel2.selectedIndex = i + 1;
sel.form.resultat.value = +sel.value * val;
}
}
}
}
function beregn(sel2){
if(sel2.selectedIndex==0){
sel2.form.resultat.value = "";
}else{
sel2.form.resultat.value = +sel2.form.sel1.value * (+sel2.value);
}
}
</script>
<body onload="initSels();">
<form name="form1">
<div style="float:left;">
Vælg tal:<br>
<select name="sel1" onchange="ch(this);">
<option>-- Vælg --</option>
</select>
</div>
<div style="float:left;">
Vælg tal:<br>
<select name="sel2" onchange="beregn(this);">
<option><< Vælg --</option>
</select>
</div>
<div style="float:left;">
Resultat:<br>
<input name="resultat">
</div>
</form>
</body>