Avatar billede svjensen Nybegynder
15. oktober 2003 - 20:33 Der er 20 kommentarer og
1 løsning

Valg af checkbox skal få andre checkboxe til at være ikke-aktive'

Jeg har et antal grupper af checkboxe, som er grupperet med samme name. Eksempelvis to med name=chk1 tre med mane=chk2 og to med mane=chk3.

Når siden åbnes skal det være muligt at 'checke' en hvilken som helst checkbox, de skal altså alle være aktive.
Men når én box er checked skal det ikke være muligt at vælge en checkbox fra en anden gruppe.
Hvis jeg altså vælger en boks fra chk2, så skal jeg derefter kun kunne vælge andre boxe fra chk2. Hvis jeg så fravælger alle boxene i chk2, så skal alle grupper naturligvis være valgbare igen.

Kan det lade sig gøre?
Avatar billede jakobclausen Nybegynder
15. oktober 2003 - 20:35 #1
Hvis du giver dem samme navn laver du dem til en gruppe, og man kan derfor kun vælg én af dem. For at kunne kende forskel på dem giver du dem en value.
Avatar billede jakobclausen Nybegynder
15. oktober 2003 - 20:36 #2
undskyld har misforstået dit spørgsmål!
Avatar billede ohmish Nybegynder
15. oktober 2003 - 20:48 #3
hva med noget radio button?
Avatar billede erikjacobsen Ekspert
15. oktober 2003 - 20:59 #4
Avatar billede roenving Novice
15. oktober 2003 - 21:00 #5
<html>
<title>Check checkboxe</title>
<script type="text/javascript">
checkedC = '0';
function checkChecks(box){
  c = document.getElementsByTagName('INPUT');
  actCheck = box.name.substring(3);
  if(checkedC=='0'){
    for(i=0;c.length>i;i++){
      if(c[i].type=='checkbox'&&c[i].name!=box.name)c[i].disabled=true;
    }
  checkedC = actCheck;
  }else {
      enables = true;
        for(i=0;c.length>i;i++){
        if(c[i].type=='chekbox'&&c[i].name==box.name)enables=(enables&&!c[i].checked);
      }
      if(enables)checkedC='0';
        for(i=0;c.length>i;i++){
        if(c[i].type=='checkbox'&&c[i].name!=box.name)c[i].disabled=!enables;
    }
  }
}
</script>

</html>
<body>
<input type="checkbox" name="chk1" onclick="checkChecks(this)"><input type="checkbox" name="chk1" onclick="checkChecks(this)"><br>
<input type="checkbox" name="chk2" onclick="checkChecks(this)"><input type="checkbox" name="chk2" onclick="checkChecks(this)"><input type="checkbox" name="chk2" onclick="checkChecks(this)"><br>
<input type="checkbox" name="chk3" onclick="checkChecks(this)"><input type="checkbox" name="chk3" onclick="checkChecks(this)"><br>

</body>
</html>
Avatar billede olebole Juniormester
16. oktober 2003 - 01:07 #6
<ole>

Det er ikke smart at forvirre brugeren. Checkbokse sætter man ikke i grupper, det har man radio-buttons til. Det er ikke brugervenligt at vende op og ned på kendte elementers vanlige funktion  :)

/mvh
</bole>
Avatar billede olebole Juniormester
16. oktober 2003 - 01:09 #7
Ole taler snot .... glem mit indlæg  :oP
Avatar billede sukos Juniormester
16. oktober 2003 - 01:11 #8
taler???
:O)
Avatar billede sukos Juniormester
16. oktober 2003 - 01:12 #9
Indbygget "livestream" på eksperten?
FEDT!
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 01:12 #10
<erik>

Det er ikke smart at forvirre spørgere.

</jacobsen>

.... men indrømmet, det er er en "tres nuveaux" måde at bruge
checkboxe på, hvis jeg har forstået problemstillingen korrekt.
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 01:12 #11
nouveaux?
Avatar billede sukos Juniormester
16. oktober 2003 - 01:13 #12
I stedet for techno, så kører alle indlæg som ..................
:O)
Avatar billede olebole Juniormester
16. oktober 2003 - 01:17 #13
Ja, Erik ... du har det som en pige, jeg engang kendte. Hun var skide god til fransk ....... manglede kun at lære sproget også. Høhø  8-]

Men det blev afgjort bedre i andet forsøg  :)
Avatar billede svjensen Nybegynder
16. oktober 2003 - 08:01 #14
Fransk er ikke lige min stærke side, så det vil jeg ikke kommentere på.

Men for lige at skabe lidt klarhed over, hvorfor jeg ønsker at gøre det på denne måde:

Jeg skal lave en side, hvor brugeren kan vælge at få præsenteret nogle forskellige medlemslister. Brugeren kan vælge at generere lister udfra alder, hold m.m. (heraf de forskellige grupper). Men inden for hold er der fx 4 forskellige, og det er jo ikke sikkert, at brugeren ønsker en liste over alle (derfor flere checkboxe i hver gruppe).
Da jeg ikke ønsker, at brugeren skal kunne kombinere grupperne, efterspurgte jeg en måde til at gøre grupperne inaktive henholdsvis aktive.
Desuden ønsker jeg samme navn, da jeg derved får værdien af alle valgte hold i samme streng.

roenving -> Dit forslag har det problem, at det 'dimmer' de andre grupper første gang man vælger en box. Men hvis man vælger mere end én box i en gruppe, så bliver de andre grupper igen aktive. (hver anden gang: dimmer, hver anden gang: aktiv)

erikjacobsen -> Det er præcis det jeg leder efter. Et svar giver point.
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 08:49 #15
Nå, ja, jeg lavede en variant. Der er ingen grund til at navnene
skal være magiske - dem skal du jo bruge til noget andet. Denne
her bruger id-erne til "magien".

Du skal også være opmærksom på at alle checkboxe kommer under kniven
i dette script. Har du andre checkboxe skal vi gøre noget (lidt) mere.

http://www.dmu-stud.dk/~ej/414451a.html
Avatar billede svjensen Nybegynder
16. oktober 2003 - 09:06 #16
I din variant kommer der kun en alertbox frem med gruppebenævnelsen (a, b eller c), men der sker ikke noget mht. at 'dimme'.
Avatar billede svjensen Nybegynder
16. oktober 2003 - 09:10 #17
Såvidt jeg lige kan gennemskue (jeg er endnu ikke nogen ørn til javascript), så tester den stadig på name og ikke id. Og da du har ændret name til xa1, xa2 ..., så sker der ikke noget.
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 09:12 #18
Jeg havde vist glemt at trykke på "save" i går. Men det er rettet nu - prøv igen
Avatar billede svjensen Nybegynder
16. oktober 2003 - 09:13 #19
Jeg justerede til at teste på id (og fjernede alertboksen) og det virker.

http://www.vinther-jensen.dk/test/checkboxa.htm
Avatar billede svjensen Nybegynder
16. oktober 2003 - 09:14 #20
OK du kom først ;-)

Husk et svar for point
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 09:15 #21
Ok - ;)
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