Avatar billede moso Nybegynder
10. januar 2007 - 15:41 Der er 1 kommentar og
1 løsning

Minimum en checkbox klikket af?

I forlængelse af sp. http://www.eksperten.dk/spm/597566 mangler jeg en funktion der sikrer at mindst een checkbox er fyldt ud.
koden er denne:
<script type="text/javascript">
  var checkboxArr = new Array();
  function checkboxFunction(chkElm,chkName,maxChecked) {
        if (!checkboxArr[chkName]) {checkboxArr[chkName] = 0;}
        num = checkboxArr[chkName] += (chkElm.checked) ? 1 : -1;
        if (num == maxChecked) {
            elms = document.getElementsByName(chkName);
            for (i=0;i<elms.length;i++) {
                  elms[i].disabled = !elms[i].checked;
            }
        }
        else if (num == maxChecked-1) {
            elms = document.getElementsByName(chkName);
            for (i=0;i<elms.length;i++) {
                  elms[i].disabled = false;
            }
        }
  }
 
  window.onload = function() {
        frmElms = document.eventfrm.chk1;
        checkboxArr["chk1"] = 0;
        for (i=0;i<frmElms.length;i++) {
            if (frmElms[i].checked) {checkboxArr["chk1"]++;}
        }
  }
</script>

<input name="Hovedkategori" type=checkbox onclick="checkboxFunction(this,this.name,3);" id="Hovedkategori" value="A" >A<br>
<input name="Hovedkategori" type=checkbox onclick="checkboxFunction(this,this.name,3);" id="Hovedkategori" value="B" >B<br>
<input name="Hovedkategori" type=checkbox onclick="checkboxFunction(this,this.name,3);" id="Hovedkategori" value="C" >D<br>

--- osv...

Jeg vil gerne sikre at der mindst er en box som er tjekket af, helst med en alert OnSubmit.
Nogen der kan hjælpe?
Avatar billede roenving Novice
16. januar 2007 - 01:36 #1
<form ... onsubmit="return valider(this);">

function valider(f){
  var chckd = false, chk = f.Hovedkategori;
  for(i=0,im=chk.length;im>i;i++)
    chckd = chckd || chk[i].checked;
  if(!chckd){
    alert("Du skal udfylde mindst een hovedkategori !-)");
    chk[0].focus();
    return false;
  }

  //Andre valideringer, f.eks.
  if(!f.telefon.value.match(/^\d[8}$/)){
    alert("Du skal udfylde telefon med et 8-cifret telefonnummer !-)");
    f.telefon.focus();
    return false;
  }

  //...

  return true;
}
Avatar billede moso Nybegynder
23. februar 2009 - 16:04 #2
lukker
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