Avatar billede jjense21 Nybegynder
24. maj 2001 - 15:05 Der er 5 kommentarer og
1 løsning

kontrol af valgt checkbox

Jeg har en række checkboxe, og når brugeren klikker på en knap (submitter formen), vil jeg have et javascript der kontrollerer om brugeren har valgt mindst en checkbox.

sådan ser min checkbox ud
<TD><INPUT TYPE=\"checkbox\" NAME=\"pladser[]\" VALUE=\"<? echo $række ?>x<? echo $nummer ?>\"></TD><?

på formen kører jeg en onsubmit.
<FORM ACTION=\"godkend.php\" NAME=\"pladsform\" OnSubmit=\"return KontrollerValg(this);\">

og kontrollerValg ser sådan ud:
<SCRIPT>
function KontrollerValg(form){
  pladsValg=-1
  for (i=0;i<form.pladser.length;i++){
    if (form.pladser[i].checked)
      pladsValg=i
  }
  if (pladsValg==-1){
    alert(\'Du skal vælge en eller flere pladser\')
    return (false)
  }
    return (true)
}
//-->
</SCRIPT>

Scriptet er taget direkte fra et eksempel hvor man dog anvendte radiobuttons. Jeg troede det var samme metode man anvendte ved checkboxes, men det er det tilsyneladene ikke. Scriptet virker ihvertfald ikke korrekt.
Avatar billede nuno Nybegynder
24. maj 2001 - 15:09 #1
det er fordi radiobuttons har det samme navn inden for hver \"gruppe\" - checkboxe har hvert deres navn.

hvis du alligevel VIL have at en bruger skal vælge een (og kun eeen) af dine valgmuligheder, hvorfor så ikke bruge radiobuttons? Det er det de er lavet til :)

/nuno
Avatar billede nuno Nybegynder
24. maj 2001 - 15:13 #2
hvis der fx er 3 radio buttons (3 valgmuligheder inden for een gruppe - fx pladser) - så skal de 3 radiobuttons have samme navn i formen.

Hvis du derimod bruger chekcboxe - så skal de have hver deres navn i formen - og du skal så checke hvilken af dem der er checked - ved at chekce på hvilken af form-elementerne (fx check1, check2 og check3) der er checked.

/nuno
Avatar billede erikjacobsen Ekspert
24. maj 2001 - 15:41 #3
Han kan jo ikke bruge radiobuttons, når der skal være mindst én afkrydset. De
behøver heller ikke have forskellige navne. Jeg laver lige et lige et eksempel om
lidt.
Avatar billede jjense21 Nybegynder
24. maj 2001 - 15:43 #4
jeg kan ikke bruge radiobutton´s fordi det skal være muligt at klikke på flere valgmuligheder. Som du ser har mine checkboxe samme navn, men er smidt i et array. Det må da kunne lade sig gøre at tjekke om mindst 1 checkbox er valgt
Avatar billede erikjacobsen Ekspert
24. maj 2001 - 16:44 #5
Du skulle kunne få den generelle idé af nedenstående. Skal du bruge det til
noget er du da velkommen til at angive kilden :))

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE=\"JavaScript\">
<!--
  function check(f) {
    var count=0;
    for (i=0;i<f.elements.length;i++) {
      if (f.elements[i].name==\"bestil[]\" && f.elements[i].checked) count++;
    }
    if (count==0) {
      alert(\"Du skal trykke på mindst en\");
      return false;
    } else {
      alert(\"Du har trykket på \"+count+\" boxe\");
      return true;
    }
  }
//-->
</SCRIPT>
</HEAD>

<BODY>

<form onsubmit=\"check(this);\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<input type=\"checkbox\" name=\"bestil[]\">
<br><input type=\"submit\">
</form>

</BODY>
</HTML>
Avatar billede nuno Nybegynder
24. maj 2001 - 19:23 #6
nååh - jeg opfattede det som om at een og kun een skulle være afkrydset :)

sorry

/nuno
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