Avatar billede fusentasten Nybegynder
25. marts 2002 - 13:22 Der er 10 kommentarer og
1 løsning

Hak flere check boske af på een gang

Hej eksperter
Findes der et enkelt javascript, der når man hakker en checkboks af, hakker resten af checkboksene af (ligesom i Hotmail, når man hakker alle sine mails af på een gang)

Det Hotmail bruger er sgu lidt for avanceret til mig...
Avatar billede fusentasten Nybegynder
25. marts 2002 - 13:30 #1
boske = bokse
;-)
Avatar billede jakoba Nybegynder
25. marts 2002 - 14:16 #2
Ja det er ikke så svært:

<script type='text/javascript'>

function setAlleCheckboxe( frm, nyverdi ) {
    var frme = frm.elements;
    for (var i=0; i<frme.length; i++ ) {
        if ( frme[i].type == 'checkbox' ) {
            frme[i].checked = nyverdi;
        }
    }
}; //end setAlleCheckboxe( Form object, boolean )

</script>

fra en knap kan du så fx kalde funktionen med:

<inpyt type='button' value='clear alle' onclick="setAlleCheckboxe( this.form, false )">

så vil alle checkbokse i den form blive sat til false (dvs ikke markeret)

hvis du udvider if betingelsen med noget checkpå feltets .name attribut kan du bruge det til at styre grupper af checkbokse i den form (eg: alle dem der hedder noget med 'grp1' i deres .name attribut).

mvh JakobA
Avatar billede decrypto Nybegynder
25. marts 2002 - 14:35 #3
Det er nok bedst du laver en funktio til dette som du kalder fra den chkbox der skal "checke alle". Jeg har koden klar til dig her.

decrypto
Ps! Du kan evt. bruge en løkke i funktionen til at løbe igennem dine checboxes.
-------------------------- kode ---------------------------------

<script>
function check(){
if(document.all.box2.status==''){
  document.all.box2.status='checked';
  document.all.box3.status='checked';
  document.all.box4.status='checked';
  document.all.box5.status='checked';
  }
else{
  document.all.box2.status='';
  document.all.box3.status='';
  document.all.box4.status='';
  document.all.box5.status='';
}
}
</script>
</head>

<body>

<input type="checkbox" name="box1" id="box1" onClick="check();">Alle<br>
<input type="checkbox" name="box2" id="box2" >Grøn<br>
<input type="checkbox" name="box3" id="box3" >Sort<br>
<input type="checkbox" name="box4" id="box4" >Gul<br>
<input type="checkbox" name="box5" id="box5" >Hvid<br>
</body>

</html>
Avatar billede decrypto Nybegynder
25. marts 2002 - 14:44 #4
Vent! jeg har fundet en lille fejl....
Avatar billede fusentasten Nybegynder
25. marts 2002 - 14:46 #5
Kan du lave sådan en løkke, så den automastisk tjekker for alle bokse?
Avatar billede decrypto Nybegynder
25. marts 2002 - 15:01 #6
Ja, hvis du navngiver dine bokse det samme som mine. :-)
Avatar billede fusentasten Nybegynder
25. marts 2002 - 15:05 #7
hmm. De får nok forskellige navne. Kan man ikke får den til at tjekke for alle boxe i en <form></form>
Avatar billede jakoba Nybegynder
25. marts 2002 - 15:22 #8
det er det den gør :-)
Avatar billede fusentasten Nybegynder
25. marts 2002 - 15:30 #9
ok. jeg kan bare ikke få din til at virke...
Avatar billede decrypto Nybegynder
25. marts 2002 - 15:40 #10
Her er koden, den var en smule drilsk, men nu virker den med en lidt bedre feature.

--------------------------------- kode start -----------------------------
<script>
function check(){
if ((document.all.box2.status) && (document.all.box3.status) && (document.all.box4.status) && (document.all.box5.status)){
      document.all.box2.status=false;
      document.all.box3.status=false;
      document.all.box4.status=false;
      document.all.box5.status=false;
}
else{
    if ((document.all.box2.status=='') || (document.all.box3.status=='') || (document.all.box4.status=='') || (document.all.box5.status=='')) {
      document.all.box2.status=true;
      document.all.box3.status=true;
      document.all.box4.status=true;
      document.all.box5.status=true;
      }
    else{
      document.all.box2.status=false;
      document.all.box3.status=false;
      document.all.box4.status=false;
      document.all.box5.status=false;
}      }
}

function dblcheck(){
  if (document.all.box1.status==false){
      if((document.all.box2.status) && (document.all.box3.status) && (document.all.box4.status) && (document.all.box5.status)){
    document.all.box1.status=true;
      }
  }
else {
  document.all.box1.status=false;
  }
}
</script>
</head>
<body>

<input type="checkbox" name="box1" id="box1" onClick="check();">Alle<br>
<input type="checkbox" name="box2" id="box2" onClick="dblcheck();">Grøn<br>
<input type="checkbox" name="box3" id="box3" onClick="dblcheck();">Sort<br>
<input type="checkbox" name="box4" id="box4" onClick="dblcheck();">Gul<br>
<input type="checkbox" name="box5" id="box5" onClick="dblcheck();">Hvid<br>
</body>
-------------------------------- kode slut -----------------------------
Avatar billede decrypto Nybegynder
25. marts 2002 - 15:42 #11
Du skal sørge for at have dine chkbox name og id er de samme som mine. Hvor mange chkboxes har du? hvis du har over 5 skal der laves en løkke, det vil se pænere ud.

Decrypto
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