Avatar billede wiper Nybegynder
15. maj 2008 - 10:36 Der er 11 kommentarer og
1 løsning

checkbokse validering

Hej

har 5 checkbokse (i en html side) hvoraf mindst en skal udfyldes... name på de 5 er forskellige.. men hvordan validerer jeg at mindst en er udfyldt ?

input type=checkbox value=Ja name=CheckboksNavn
Avatar billede di8leva Nybegynder
15. maj 2008 - 11:10 #1
<html>

<script type="text/JavaScript">
function validateCheck() {
    return document.f.chn[0].checked ||
          document.f.chn[1].checked ||
          document.f.chn[2].checked ||
          document.f.chn[3].checked ||
          document.f.chn[4].checked;
}
</script>

<form name="f" action="go.php" onSubmit="return validateCheck();">
    <input type="checkbox" value="Ja1" name="chn"><br>
    <input type="checkbox" value="Ja2" name="chn"><br>
    <input type="checkbox" value="Ja3" name="chn"><br>
    <input type="checkbox" value="Ja4" name="chn"><br>
    <input type="checkbox" value="Ja5" name="chn"><br>
    <input type="submit">
</form>

</html>
Avatar billede wiper Nybegynder
15. maj 2008 - 11:30 #2
Kan ikke få det til at fungere ...

desuden skal name taggen være forskellige pr. checkboks... ligesom:

<input type="checkbox" value="Ja1" name="checkbox1"><br>
    <input type="checkbox" value="Ja2" name="checkbox2"><br>
    <input type="checkbox" value="Ja3" name="checkbox3"><br>
    <input type="checkbox" value="Ja4" name="checkbox4"><br>
    <input type="checkbox" value="Ja5" name="checkbox5"><br>
Avatar billede w13 Novice
15. maj 2008 - 11:34 #3
Så må du vel overføre navnene:

<script type="text/JavaScript">
function validateCheck(a){
    for(var i=0;i<a.length;i++)if(document.f[a[i]].checked)return true;
    return false
}
</script>

<form name="f" action="go.php" onSubmit="return validateCheck(['checkbox1','checkbox2','checkbox3','checkbox4','checkbox5'])">
    <input type="checkbox" value="Ja1" name="checkbox1"><br>
    <input type="checkbox" value="Ja2" name="checkbox2"><br>
    <input type="checkbox" value="Ja3" name="checkbox3"><br>
    <input type="checkbox" value="Ja4" name="checkbox4"><br>
    <input type="checkbox" value="Ja5" name="checkbox5"><br>
    <input type="submit">
</form>
Avatar billede w13 Novice
15. maj 2008 - 11:35 #4
Hvis det bare er alle checkboksene i formen, kan du også gøre sådan her:

<script type="text/JavaScript">
function validateCheck(o){
    o=o.getElementsByTagName("input");
    for(var i=0;i<o.length;i++)if(o[i].getAttribute("type")=="checkbox"&&o[i].checked)return true;
    return false
}
</script>

<form name="f" action="go.php" onSubmit="return validateCheck(this)">
    <input type="checkbox" value="Ja1" name="checkbox1"><br>
    <input type="checkbox" value="Ja2" name="checkbox2"><br>
    <input type="checkbox" value="Ja3" name="checkbox3"><br>
    <input type="checkbox" value="Ja4" name="checkbox4"><br>
    <input type="checkbox" value="Ja5" name="checkbox5"><br>
    <input type="submit">
</form>
Avatar billede wiper Nybegynder
15. maj 2008 - 13:48 #5
hmmm...synes ikke rigtig det vil virke ... måske er det fordi det er i en cms, hvor der i forvejen ligger et javascript og validerer på én boks vha. validateregexp="\w"...

function ValidateForm(element,regExpPattern,message)
....
case('checkbox'):
                {
                    try
                    {
                        var buttonEnabled = false;
                        var elements = document.getElementsByName(element.name);
                        for(var i = 0; i < elements.length; i++)
                        {
                            if(elements[i].checked)
                            {
                                buttonEnabled = true;
                                break;
                            }
                        }
                        result = buttonEnabled;                       
                    }
                    catch(err)
                    {
                        alert(err.description);
                        result = false;
                    }
                }


.....
Avatar billede w13 Novice
15. maj 2008 - 13:50 #6
Hvis der slet intet sker, så er det nok fordi en anden funktion går ind og dominerer - men du fortæller ikke, hvordan det ikke virker, så det er umuligt for mig at sige.
Avatar billede wiper Nybegynder
15. maj 2008 - 14:19 #7
Hej W13

den validerer ikke på de 5 checkbokse...
Avatar billede w13 Novice
15. maj 2008 - 14:34 #8
Og med validerer, hvad mener du så helt præcist? Mangler du en alert eller noget, for det er ikke kodet ind i vores eksempler.
Avatar billede wiper Nybegynder
15. maj 2008 - 14:36 #9
ja den sender blot formularens øvrige felter....
Avatar billede w13 Novice
15. maj 2008 - 14:48 #10
Ja, så går noget andet vist ind over og sletter vores funktion.
Avatar billede wiper Nybegynder
15. maj 2008 - 14:50 #11
ok...men det er rimeligt ærgerligt...men du skal ihvertfald have de points...
Avatar billede wiper Nybegynder
15. maj 2008 - 14:51 #12
ups..smider du et svar...
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
Kurser inden for grundlæggende programmering

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