Avatar billede jss Nybegynder
29. oktober 2004 - 13:57 Der er 2 kommentarer og
1 løsning

Avanceret validering

I forlængelse af spmål. http://www.eksperten.dk/spm/554615 har jeg nu brug for at validere hele formen når den submittes. Det der skal ske, er at den skal tjekke hvert sammenhørende sæt checkbox, radiobuttons og textbox (f.eks i3,b3,t3,s3) for om alle radiobuttons og textbox er udfyldt hvis checkbox (i3) IKKE er markeret. Jeg har fundet et godt script af olebole (http://eksperten.dk/spm/538626), men mangler at indbygge den "sætvise sammenligning"
Avatar billede jss Nybegynder
29. oktober 2004 - 16:26 #1
Her er mit forsøg på en funktion, som dog ikke virker. Er der nogen med en god idé til hvad der skal gøres så funktionen kommer til at virke?


function Frm_cc1()
{
    var f = document.forms[0];
    var t1 = f.elements["t1"];
    var b1 = f.elements["b1"];
    var fejl = 0;
    if (f.elements["i1"].checked = false)
    {
    var tal1 = 0;
    var tal2 = 0;
        for (var x=0; x < t1.length && tal1==0; x++)
        {
            if (t1[x].value != "")
        tal1++;
    }
        for (var x=0; x < b1.length && tal1==0 && tal2==0; x++)
        {
            if (b1[x].value != "")
        tal2++;
    }
        if (tal1==0 || tal2==0 || f.elements["s1"].value == "")
        {
        fejl = 1;
    }
      if ( fejl==1 )
      {
            return confirm( "Nogle udsagn er ikke udfyldt fyldestgørende. Tast OK for at acceptere." );
            return false;
        }   
    }   
}
Avatar billede jss Nybegynder
29. oktober 2004 - 16:27 #2
kaldet er: onsubmit='return Frm_cc1()' i <form>-tag´et
Avatar billede jss Nybegynder
29. oktober 2004 - 23:18 #3
Er selv kommet frem til en løsning :-))

function Frm_cc1()
{
    var f = document.forms[0];
    var be1 = f.elements["b1"];
    var te1 = f.elements["t1"];
    var se1 = f.elements["s1"];

    var fejl = 0;
    if (f.elements["i1"].checked == false){
    var tal1 = 0;
    var tal2 = 0;
        for (var x=0; x < be1.length && tal1==0; x++){
            if (be1[x].checked==true){tal1++;}
    }
        for (var x=0; x < te1.length && tal2==0; x++){
            if (te1[x].checked==true){tal2++;}
    }
        if (tal1>0 && tal2>0 && se1.value > ""){
        fejl = 0;
    }
        else{
        fejl = 1;
    }
    }   
    if ( fejl==1 )
    {
      return confirm( "Nogle udsagn er ikke udfyldt fyldestgørende. Klik OK for at acceptere og fortsætte alligevel." );
    return false;
    }   
}

jeg har så lavet den x antal gange for hvert sæt .... rimelig kedeligt arbejde, men det virker. Hvis nogen skulle have lyst til at komme med et forslag til, hvordan det kan laves således at funktionen kører igennem x antal sæt af sammenhørende checkbox, radiobuttons og textbox, så skal det være yderst velkomment !!
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