Avatar billede smurfen Nybegynder
19. december 2000 - 11:20 Der er 6 kommentarer og
1 løsning

Check flere checkbokse

function CheckAll(strName,intNumber){
    if(document.Question.CheckAll.checked){
        for (i=0; i < intNumber; i++){
        document.Question.Q[strName][i].checked = true;
        }
    }
    else{
        for (i=0; i < intNumber; i++){
        document.Question.Q[strName][i].checked = true;
        }
    }
}

Når jeg kalder funktionen med CheckAll(\'1407\',10) fejler det helt..

Finden er..
Jeg har et antal checkboxe 70-80 stykker der hedder nogenlunde det samme. f.eks.
Q14070 til Q140710
Derfor ville det være cool hvis jeg kunne kalde funktionen med checkboxnavnet, dvs 1407 og så med et antal der fortæller hvor mange der er.. men jeg kan ikke få det til at virke..
Avatar billede erikjacobsen Ekspert
19. december 2000 - 11:23 #1
Prøv

document.Question[\"Q+strName+\"].checked = true;
Avatar billede erikjacobsen Ekspert
19. december 2000 - 11:24 #2
Hovsa, jeg mener

    document.Question[\"Q\"+strName+i].checked = true;
Avatar billede jumper Nybegynder
19. december 2000 - 11:25 #3
function CheckAll(baseName,intNumber){
  var form = document.Question;
  for (var i=0; i<intNumber; i++){
    if (form[baseName + i]){
      form[baseName + i].checked = true;
    }
  }
}

CheckAll(\'1407\',10)

Første parameter er hvad navnet på elementerne begynder med, anden parameter er antal.

Hvis det skal tilrettes mere, siger du bare til ;)

/Thor
Avatar billede toni01 Nybegynder
19. december 2000 - 11:27 #4
<script language=\"JavaScript\">
<!--

Hej smurfen

måske kan du bruge noget fra dette kode.

function countChoices(obj) {
ezsSetAnswered(\'Q5\');
max = 3; // max. number allowed at a time

box1 = obj.form.Q5_1.checked;  // your checkboxes here
box2 = obj.form.Q5_2.checked;
box3 = obj.form.Q5_3.checked;  // add more if necessary
box4 = obj.form.Q5_4.checked;
box5 = obj.form.Q5_5.checked;
box6 = obj.form.Q5_6.checked;
box7 = obj.form.Q5_7.checked;
box8 = obj.form.Q5_8.checked;
box9 = obj.form.Q5_9.checked;
box10 = obj.form.Q5_10.checked;
box11 = obj.form.Q5_11.checked;
box12 = obj.form.Q5_12.checked;

count = (box1 ? 1 : 0) + (box2 ? 1 : 0) + (box3 ? 1 : 0) +(box4 ? 1 : 0) +(box5 ? 1 : 0) +(box6 ? 1 : 0) +(box7 ? 1 : 0) +(box8 ? 1 : 0) +(box9 ? 1 : 0) +(box10 ? 1 : 0) +(box11 ? 1 : 0) +(box12 ? 1 : 0);
// If you have more checkboxes on your form
// add more  (box_ ? 1 : 0)  \'s separated by \'+\'

if (count > max) {
alert(\"Husk du må kun afkrydse tre valg.\");
obj.checked = false;
  }
}

// -->
</script>
Avatar billede smurfen Nybegynder
19. december 2000 - 11:43 #5
Hej igen.. erik får alle point fordi han var hurigst ude :).. Det ownede erik.. selvom jeg opdagede en fejl mere ved det.. well.. sådan er det..
Du får dine point for:
document.Question[\"Q\"+strName+i].checked = true;

En anden fejl var at jeg havde kaldt min kryds alle checkbox for CheckAll - altså det samme som funktionen.. men den havde i selv ikke lige regnet ud :)

Nah.. men her er den færdige kode..
function CheckAll(strName,intNumber){
    if(document.Question.CheckAllBoxes.checked){
        for (i=0; i < intNumber; i++){
        document.Question[\"Q\"+strName+i].checked = true;
        }
    }
    else{
        for (i=0; i < intNumber; i++){
        document.Question[\"Q\"+strName+i].checked = false;
        }
    }
}

Kald til koden fra en checkbox der hedder CheckAllBoxes er:
CheckAll(navn,antalmeddetnavn)
Avatar billede erikjacobsen Ekspert
19. december 2000 - 11:53 #6
Naturligvis smurf - det navnesammenfald dur bestemt ikke  W-)
Avatar billede smurfen Nybegynder
19. december 2000 - 12:47 #7
uhm.. faktisk kom jeg på en endu bedre løsning:

function CheckAll(strName,intNumber,strCheckAllName){
    if(document.Question[strCheckAllName].checked){
        for (i=0; i < intNumber; i++){
        document.Question[\"Q\"+strName+i].checked = true;
        }
    }
    else{
        for (i=0; i < intNumber; i++){
        document.Question[\"Q\"+strName+i].checked = false;
        }
    }
}
hvor checkallname er navnet på den checkbox der afkrydses for at alle felter i den gruppe skal afkrydses
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