Avatar billede jmc Nybegynder
30. januar 2003 - 02:58 Der er 8 kommentarer og
1 løsning

checkboks validering

hvordan sikre man sig at checkbokse og selectionbokse er udfyld?

giv vensligt et kodeeksempel.
Avatar billede bearhugx Nybegynder
30. januar 2003 - 02:59 #1
taler vi om at tjecke for at minimum én checkboks er valgt ???
Avatar billede bearhugx Nybegynder
30. januar 2003 - 03:15 #2
Jeg har lavet et eksempel for checkbokse... Formen bliver ikke submittet, hvis der ikke er mindst én checkboks, som er checked...

<html>
  <script type="text/javascript">
    function validate(form) {
      var aChkBoxChecked = false;
      inputArray = form.getElementsByTagName("input");
      for(i=0; i<inputArray.length; ++i) {
        if(inputArray[i].type=='checkbox') {
          if(inputArray[i].checked=='checked') {
            aChkBoxChecked = true;
          }
        }
      }
      return aChkBoxChecked;
    }
  </script>
  <body> 
    <form onSubmit="validate(this);">
      <input type="checkbox" name="chk1">1</input><br/>
      <input type="checkbox" name="chk2">2</input><br/>
      <input type="checkbox" name="chk3">3</input><br/>
      <input type="checkbox" name="chk4">4</input>
      <input type="submit" value="GO!"/>
    </form>
  </body>
</html>

Du kan se koden i aktion på
http://www.the-source.dk/eksperten/311307/checkbox.html

/Søren
Avatar billede bearhugx Nybegynder
30. januar 2003 - 03:28 #3
du må undskylde -- jeg er kommet til at sende noget fejlbehæftet kode med (men bemærk dog også tidspunktet :-) ...

Her er den rigtige version - igen- den kan afprøves på the-source.dk (link ovenover :) :
<html>
  <script type="text/javascript">
    function validate(form) {
      var aChkBoxChecked = false;
      inputArray = form.getElementsByTagName("input");
      for(i=0; i<inputArray.length; ++i) {
        if(inputArray[i].type=='checkbox') {
          if(inputArray[i].checked) {
            aChkBoxChecked = true;
          }
        }
      }
      alert(" success ="+aChkBoxChecked);
      return aChkBoxChecked;
    }
  </script>
  <body> 
    <form onSubmit="return validate(this);" action="http://www.the-source.dk">
      <input type="checkbox" name="chk1">1</input><br/>
      <input type="checkbox" name="chk2">2</input><br/>
      <input type="checkbox" name="chk3">3</input><br/>
      <input type="checkbox" name="chk4">4</input>
      <input type="submit" value="GO!"/>
    </form>
  </body>
</html>

bemærk f.eks. at form->onSubmit har "return" med nu ... onSubmit-eventen afgør (med true/false) om formen bliver sendt afsted...

Derudover er der også rettet til at teste på .checked==true oppe i validate-funktionen -- hbilket nu gør, at validate faktisk også kan svare false :-)))

/Søren
Avatar billede bearhugx Nybegynder
30. januar 2003 - 03:31 #4
linien i validate()
  alert(" success ="+aChkBoxChecked);

kan roligt smides væk -- Det var kun en debug-udskrift :-)
Avatar billede jmc Nybegynder
30. januar 2003 - 09:59 #5
vil dette sige at alle skal være klikket til, jeg ville bare have at minds én var.
Avatar billede bearhugx Nybegynder
30. januar 2003 - 10:13 #6
jmc >> Det er også sådan, den virker.

Hvis bare en af de fire checkbokse er valgt, så melder validate() true - kun i tilfælde, hvor der ikke er nogle valgt, som er valgt, melder den false...

Du har rig mulighed for at afprøve det på http://www.the-source.dk/eksperten/311307/checkbox.html - og der vil du se, at hvis bare en af boksene er afmarkeret, så sendes mann videre, når man trykker på "GO" - hvis der ikke er nogen afmarkerede, så kommer man ingen steder...
/Søren
Avatar billede bearhugx Nybegynder
31. januar 2003 - 15:25 #7
jmc >> Kunne du bruge det ???
Avatar billede jmc Nybegynder
31. januar 2003 - 17:31 #8
Ja, tak det er fint. Jeg kunne dog godt bruge en alertboks hvor jeg kunne skrive en besked.
Avatar billede bearhugx Nybegynder
31. januar 2003 - 17:34 #9
<html>
  <script type="text/javascript">
    function validate(form) {
      var aChkBoxChecked = false;
      inputArray = form.getElementsByTagName("input");
      for(i=0; i<inputArray.length; ++i) {
        if(inputArray[i].type=='checkbox') {
          if(inputArray[i].checked=='checked') {
            aChkBoxChecked = true;
          }
        }
      }
      if(!aChkBoxChecked) {
        alert(" Du skal vælge mindst én valgmulighed!");
      }
      return aChkBoxChecked;
    }
  </script>
  <body> 
    <form onSubmit="validate(this);">
      <input type="checkbox" name="chk1">1</input><br/>
      <input type="checkbox" name="chk2">2</input><br/>
      <input type="checkbox" name="chk3">3</input><br/>
      <input type="checkbox" name="chk4">4</input>
      <input type="submit" value="GO!"/>
    </form>
  </body>
</html>
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel