Avatar billede solari Nybegynder
04. maj 2005 - 22:36 Der er 6 kommentarer og
1 løsning

check checkbox med et link

Hej alle eksperter

Jeg har et link der skal, når man trykker på det, henholdsvis check og uncheck nogen checkboxes.
antallet af checkboxes kan varigere, men jeg har navne på dem alle.

function Check(cbox)
{
  if(window.document.form1.cbox[0].checked)
  {
      for(var loop = 0; loop < cbox.length; loop++)
      {
        window.document.form1.cbox[loop].checked = false;
      }
  }
  else
  {
      for(var loop = 1; loop < cbox.length; loop++)
      {
        window.document.form1.cbox[loop].checked = false;
      }
  }
}

<a href="#" onClick="Check(Array('checkbox12','checkbox13','checkbox14','checkbox17','checkbox18','checkbox23')); return false;">Vælg alle</a>

<form action="link.html" method="post" name="form1" id="form1">
  <input type="checkbox" name="checkbox12" value="1" />
  <input type="checkbox" name="checkbox13" value="1" />
  <input type="checkbox" name="checkbox14" value="1" />
  <input type="checkbox" name="checkbox17" value="1" />
  <input type="checkbox" name="checkbox18" value="1" />
  <input type="checkbox" name="checkbox23" value="1" />

  <input name="btnsubmit" value="Submit" type="submit" />
  <input name="btnreset" value="reset" type="reset" />
</form>


Det virker ikke.
Hvis jeg skriver:
window.document.form1.cbeckbox12.checked
i functionen så virker det.
Men lige så snart jeg bruger cbox variablerne så virker det ikke.
Hvis man laver en alert(cbox[0]); i functionen kan den godt se værdien i variablen.

Jeg har prøvet at skrive:
window.document.form1.+cbox[0]+.checked
det virkede ikke.

Håber der en der kan hjælpe.
Avatar billede busschou Praktikant
05. maj 2005 - 15:26 #1
Det skal se sådan her ud - virker hos mig
----
function Check(cbox)
{
  if(document.forms.form1[cbox[0]].checked)
  {
      for(var loop = 0; loop < cbox.length; loop++)
      {
        document.forms.form1[cbox[loop]].checked = false;
      }
  }
  else
  {
      for(var loop = 1; loop < cbox.length; loop++)
      {
        document.forms.form1[cbox[loop]].checked = false;
      }
  }
}
Avatar billede roenving Novice
05. maj 2005 - 15:27 #2
function Check(cbox){
  var chck = window.document.form1.elements[cbox[0]].checked;
  for(var loop = 0; loop < cbox.length; loop++){
    window.document.form1.elements[cbox[loop]].checked = !chck;
  }
}
Avatar billede busschou Praktikant
05. maj 2005 - 15:28 #3
Linket hedder "vælg alle" men det din funktion gør er følgende
1) hvis første box er checked så unchecker den alle
2) hvis første box ikke så unchecker den alle pånær den første
Så den vælger ingen!
Avatar billede solari Nybegynder
05. maj 2005 - 18:10 #4
Hej Busschou
Ja det helt korrekte have nok været at tjeckke om alle checkbox var mærkeret
hvis ja så sæt alle til false hvis nej sæt alle til true.
men jeg mente at det andet var godt nok.
For det meste er de alle sammen enten true eller false

men dit script virkede ikke helt rodet lidt med det og fik det til at virke
function Check(cbox)
{
  if(window.document.form1[cbox[0]].checked)
  {
    for(var loop = 0; loop < cbox.length; loop++)
    {
    window.document.form1[cbox[loop]].checked = false;
    }
    }
    else
    {
        for(var loop = 0; loop < cbox.length; loop++)
        {
          window.document.form1[cbox[loop]].checked = true;
        }
    }
  }

Hej Roenving
dit script fik til at køre.
Der gik lige et par minutter før jeg forstod det.
men det er ret smart.

du får pointne

i skal begge 2 have mange tak for svarende
Avatar billede solari Nybegynder
05. maj 2005 - 18:12 #5
hvis du lige ligger et svar Roenving
Avatar billede roenving Novice
06. maj 2005 - 12:10 #6
Jamen, så velbekomme '-)
Avatar billede roenving Novice
24. maj 2005 - 14:58 #7
-- 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