Avatar billede bodyguard Nybegynder
23. april 2005 - 19:32 Der er 16 kommentarer og
1 løsning

SELECT og disable

Hejsa

Jeg har en select box(ANTAL_VAGTER) som har værdierne 1-20. Jeg mangler et script som gør at de 20 Select boxe som hedder VAGTID_1, VAGTID_2, VAGTID_3 OSV. blevet "aktive" afhænig af hvor værdien i "ANTAL_VAGTER"...

Jeg håber at der er en som kan hjælpe :)
Avatar billede busschou Praktikant
23. april 2005 - 19:37 #1
Altså du har en <select> med 20 <option> ? og hvad er det så præcis du ønsker?
Er ikke helt med ;o)
Avatar billede busschou Praktikant
23. april 2005 - 19:37 #2
Eller er det fordi du har en <select> og afhængig af den skal der komme flere selects?
Avatar billede bodyguard Nybegynder
23. april 2005 - 19:38 #3
Nr 2 :)
Avatar billede busschou Praktikant
23. april 2005 - 19:46 #4
Så laver du en onchance
<select name="antal_vagter" onchange="visvalgte(this.selectedindex)";>
Det vil kalde en funktion med det indeks der er valgt i din select
Din funktion kan så være noget ala
function visvalgte(indeks){
if(indeks == 1){
  var x = document.getElementById("vagtid_"+indeks)
  x.disabled = false
}
}
Avatar billede busschou Praktikant
23. april 2005 - 19:46 #5
Avatar billede bodyguard Nybegynder
23. april 2005 - 19:55 #6
Oki, men tager det script højde for at hvis man vælger 3 vagter så skal 1+2+3 være aktive?
Avatar billede busschou Praktikant
23. april 2005 - 20:05 #7
Ja den var værre. Jeg ved ikke om selectedIndex så returnerer samtlige valgte - det har jeg aldrig prøvet
Avatar billede bodyguard Nybegynder
23. april 2005 - 21:14 #8
Øv...
Avatar billede roenving Novice
24. april 2005 - 12:24 #9
Er det måske sådan noget, du ønsker ?-)

-- bemærk, at jeg bruger display:block/none, normalt ville man bruge selects naturlige display-mode inline, men her ønsker jeg at have dem på forskellige linjer, og så er block meget simpel at bruge !-)

-- og så har jeg af hensyn til pladsen skrabet linjerne sammen, det gør dem en anelse uoverskuelige ...

<script type="text/javascript">
function aktiverSels(sel){
  for(i=1;sel.length>i;i++){
    document.getElementById("VAGTID_" + i).style.display = sel.options[i].selected?'block':'none';;
  }
}
</script>

<select id="" multiple="multiple" size="5" onchange="aktiverSels(this)">
  <option>-- Vælg vagter --</option>
  <option>Vagt 1</option><option>Vagt 2</option><option>Vagt 3</option><option>Vagt 4</option>
  <option>Vagt 5</option><option>Vagt 6</option><option>Vagt 7</option><option>Vagt 8</option>
  <option>Vagt 9</option><option>Vagt 10</option><option>Vagt 11</option><option>Vagt 12</option>
  <option>Vagt 13</option><option>Vagt 14</option><option>Vagt 15</option><option>Vagt 16</option>
  <option>Vagt 17</option><option>Vagt 18</option><option>Vagt 19</option><option>Vagt 20</option>
</select>

<select id="VAGTID_1" style="display:none;"><option>-- Vælg 1. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_2" style="display:none;"><option>-- Vælg 2. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_3" style="display:none;"><option>-- Vælg 3. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_4" style="display:none;"><option>-- Vælg 4. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_5" style="display:none;"><option>-- Vælg 5. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_6" style="display:none;"><option>-- Vælg 6. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_7" style="display:none;"><option>-- Vælg 7. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_8" style="display:none;"><option>-- Vælg 8. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_9" style="display:none;"><option>-- Vælg 9. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_10" style="display:none;"><option>-- Vælg 10. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_11" style="display:none;"><option>-- Vælg 11. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_12" style="display:none;"><option>-- Vælg 12. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_13" style="display:none;"><option>-- Vælg 13. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_14" style="display:none;"><option>-- Vælg 14. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_15" style="display:none;"><option>-- Vælg 15. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_16" style="display:none;"><option>-- Vælg 16. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_17" style="display:none;"><option>-- Vælg 17. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_18" style="display:none;"><option>-- Vælg 18. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_19" style="display:none;"><option>-- Vælg 19. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>

<select id="VAGTID_20" style="display:none;"><option>-- Vælg 20. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>
Avatar billede roenving Novice
24. april 2005 - 12:26 #10
-- og jeg kan da tilføje, at selectedIndex kun returnerer den første valgte i en multiple select !-)
Avatar billede bodyguard Nybegynder
24. april 2005 - 14:20 #11
Nej du misforstår, Antal_vagter skal være en NORMAL select.

Et andet sted på siden er der 20 selects, de skal være synlige, men DISABLED. Og vælger men så ANTAL_VAGTER 3 så skal VAGT_ID1, VAGT_ID2 og VAGT_ID3 ikke være DISABLED så man kan vælge i dem...

Forstår du bedre nu?
Avatar billede busschou Praktikant
24. april 2005 - 14:24 #12
Så skal du lave funktionen om
<script type="text/javascript">
function aktiverSels(sel){
  for(i=1;sel.length>i;i++){
    document.getElementById("VAGTID_" + i).disabled = sel.options[i].selected?'false':'true';;
  }
}
</script>
Avatar billede roenving Novice
24. april 2005 - 14:33 #13
Så bliver det nærmere:

<script type="text/javascript">
function aktiverSels(sel){
  for(i=1;sel.length>i;i++){
    document.getElementById("VAGTID_" + i).disabled = sel.selectedIndex>=i?false:true;
  }
}
</script>

-- sammen med:

<select id="VAGTID_1" disabled="disabled"><option>-- Vælg 1. tid --</option><option value="8">8-16</option><option value="16">16-24</option><option value="24">24-8</option></select>
Avatar billede bodyguard Nybegynder
24. april 2005 - 15:37 #14
Perfeckt :)

roenving, takker kommer der ikke et sva fra dig?
Avatar billede roenving Novice
24. april 2005 - 15:39 #15
Velbekomme '-)
Avatar billede roenving Novice
24. april 2005 - 16:12 #16
Tak for point ;~}
Avatar billede bodyguard Nybegynder
24. april 2005 - 16:14 #17
Så lidt da :)
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