Avatar billede tzag_dk Nybegynder
27. maj 2004 - 11:04 Der er 8 kommentarer og
1 løsning

select box som bestemmer hvor meget der vises i select box 2

Hej

Jeg er ikke særlig stærk i JavaScript.
Men vil det ikke være muligt at lave en select box som der bestemmer hvor meget der må vises i select box 2?

<select name="alder1">
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>

<select name="alder2">
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>

Det jeg mener er at hvis man fx 17 i alder1, så skal der kun vises fra og med 17 og op efter i alder2.
Er I med på hvad jeg mener?

På forhånd tak :-)
// Rene
Avatar billede roenving Novice
27. maj 2004 - 11:36 #1
Nærmest et forsimplet eksempel, for jeg har svært ved at se hvordan en fortrydelse af en fejl kan komme ind uden lidt hokus-pokus !-)

<form>
<select name="alder1" onchange="s=this.form.alder2;for(i=this.selectedIndex-1;i>=0;i--){s.options[i]=null;}this.disabled=true;s.disabled=false;">
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>

<select name="alder2" disabled="disabled">
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>
</form>
Avatar billede tzag_dk Nybegynder
27. maj 2004 - 11:44 #2
Hej.

Det virker næsten som det skal. Men hvis nu at man kommer til at vælge forkert i alder1, kan man ikke rette det til noget andet. Fordi at alder1 bliver disabled.
Kan man ikke komme uden om det?
Avatar billede tzag_dk Nybegynder
27. maj 2004 - 13:59 #3
roenving >>

Har du et andet forslag? :-)
Avatar billede roenving Novice
27. maj 2004 - 15:23 #4
Vil det altid være sådan, at der er præcis de samme options i de to selects ?-)
Avatar billede tzag_dk Nybegynder
27. maj 2004 - 15:24 #5
ja, det vil der :-)
Avatar billede roenving Novice
27. maj 2004 - 15:51 #6
Så kan vi lave den ret fint sådan:

<script type="text/javascript">
var vals = new Array();
function makeSelect(sel,s2){
  if(vals.length==0)for(i=0;sel.length>i;i++){
    vals[i] = new Object();
    vals[i].text = sel.options[i].text;
    vals[i].value = sel.options[i].value;
  }
  var f = sel.form;
  var sel2 = f.elements[s2],idx=sel2.options[sel2.selectedIndex].value,newOpt;
  sel2.length = 0;
  for(i=sel.selectedIndex;sel.length>i;i++){
    newOpt = document.createElement('OPTION');
    sel2.appendChild(newOpt);
    newOpt.text = vals[i].text;
    newOpt.value = vals[i].value;
    newOpt.selected = (idx==vals[i].value);
  }
}
</script>

<form>
<select name="alder1" onchange="makeSelect(this,'alder2');">
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>

<select name="alder2">
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>
</form>
Avatar billede tzag_dk Nybegynder
27. maj 2004 - 15:56 #7
Kanon, det virker som det skal :-)

Tak for det!
Ligger du et svar?
Avatar billede roenving Novice
27. maj 2004 - 16:11 #8
Velbekomme '-)
Avatar billede roenving Novice
27. maj 2004 - 16:22 #9
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester