Avatar billede nc85 Nybegynder
05. februar 2008 - 15:55 Der er 7 kommentarer

lav et check på om en checkbox er krydset af

Hey alle...

Har 5 forskellige checkboxes....
de 3 af dem hedder Handboox1 Handbook2 Handbook 3
og resten hedder Brochure 1-2

Derudover har jeg en masse text felter i min form også, det har jeg noget validering på, men skal også have noget validering på checkboxene...

Det validering der skal være er at bare minimum 1 af checkboxene inde i en bestemt DIV skal være krydset af...

Mit script ser sådan ud:

function validering_kraevet(field,alerttxt) {
    with(field)
{
    if(value==null||value==""){
        alert(alerttxt);
        return false;
    } else {
        return true;
    }
}
}

function validering_emails(field, field2, alerttxt) {
   
    if(field.value != field2.value){
        alert(alerttxt);
        return false;
    } else {
        return true;
    }
}


function valider_form(thisform, errortext){
    with(thisform)
    { 
        //alert(errortext);
        if(validering_kraevet(FirstName, errortext)==false) {   
            FirstName.focus();
            setClassName("FirstName", "error");
            FirstName.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(LastName, errortext)==false) {
            LastName.focus();
            setClassName("LastName", "error");
            LastName.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Company, errortext)==false){
            Company.focus();
            setClassName("Company", "error");
            Company.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(PostalAddress, errortext)==false){
            PostalAddress.focus();
            setClassName("PostalAddress", "error");
            PostalAddress.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Postcode, errortext)==false){
            Postcode.focus();
            setClassName("Postcode", "error");
            Postcode.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(City, errortext)==false){
            City.focus();
            setClassName("City", "error");
            City.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Phone, errortext)==false){
            Phone.focus();
            setClassName("Phone", "error");
            Phone.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Email, errortext)==false){
            Email.focus();
            setClassName("Email", "error");
            Email.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(EmailRepeat, errortext)==false){
            EmailRepeat.focus();
            setClassName("EmailRepeat", "error");
            EmailRepeat.style.border="2px solid #ff0000";
            return false;
        }
       
        if(validering_kraevet(CompanyCategory, errortext)==false){
            CompanyCategory.focus();
            setClassName("CompanyCategory", "error");
            CompanyCategory.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(JobFunction, errortext)==false){
            JobFunction.focus();
            setClassName("JobFunction", "error");
            Jobfunction.style.border="2px solid #ff0000";
            return false;
        }
       
        if(validering_emails(EmailRepeat, Email, "Emails doesnt match")==false){
            EmailRepeat.focus();
            setClassName("EmailRepeat", "error");
            EmailRepeat.style.border="2px solid #ff0000";
            return false;
        }
       
    }
}

function setClassName(objId, className) {
        document.getElementById(objId).className = className;
}



function change(state, objId){
    //alert(objId);
    var retVal = false;
    var k = parseInt(document.getElementById("numofcheck").value);
    for(var m = 1; m <=  k; m++) {
        var _temp = "Handbook"+m.toString();
        if(document.getElementById(_temp).checked){
            retVal = true;
            break;
        }
    }
    if(retVal == true) {
           
            document.getElementById("Signup").checked=true;
            document.getElementById("Signup").disabled=true;
    } else {
        document.getElementById("Signup").checked=false;
        document.getElementById("Signup").disabled=false;
    }

}
Avatar billede w13 Novice
05. februar 2008 - 16:37 #1
Evt. noget i stil med:
----------------------
var elm=document.getElementById("div-id").getElementsByTagName("input");
var checked=false;
for(i=0;i<elm.length;i++){
  if(elm[i].getAttribute("type")=="checkbox"&&elm[i].checked)checked=true
}
if(checked){
  alert("Du har ikke krydset nogle af checkboksene af!");
  return false
}
Avatar billede roenving Novice
06. februar 2008 - 00:39 #2
Vel !checked ?-)

-- og jeg plejer noget i stil med:

var elm=document.getElementById("div-id").getElementsByTagName("input");
var chckd=false;
for(i=0,im=elm.length;im>i;i++)
  chckd = chckd || elm[i].getAttribute("type")=="checkbox"&&elm[i].checked;

if(!checked){
  alert("Du har ikke krydset nogle af checkboksene af!");
  return false;
}
Avatar billede w13 Novice
06. februar 2008 - 07:57 #3
Nå ja. =) Og ja, det er noget smartere.
Avatar billede nc85 Nybegynder
06. februar 2008 - 11:42 #4
Ok, jamen hvordan implementerer jeg det så i det nuværende, har prøvet, men det funger ikke helt...

function valider_form(thisform, errortext){
    with(thisform)
    { 
   
        var elm=document.getElementById("orderhandbookcats").getElementsByTagName("input");
        var chckd=false;
        for(i=0,im=elm.length;im>i;i++)
          chckd = chckd || elm[i].getAttribute("type")=="checkbox"&&elm[i].checked;

        if(!checked){
          alert("Du har ikke krydset nogle af checkboksene af!");
          return false;
        }
       
        //alert(errortext);
        if(validering_kraevet(FirstName, errortext)==false) {   
            FirstName.focus();
            setClassName("FirstName", "error");
            FirstName.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(LastName, errortext)==false) {
            LastName.focus();
            setClassName("LastName", "error");
            LastName.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Company, errortext)==false){
            Company.focus();
            setClassName("Company", "error");
            Company.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(PostalAddress, errortext)==false){
            PostalAddress.focus();
            setClassName("PostalAddress", "error");
            PostalAddress.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Postcode, errortext)==false){
            Postcode.focus();
            setClassName("Postcode", "error");
            Postcode.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(City, errortext)==false){
            City.focus();
            setClassName("City", "error");
            City.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Phone, errortext)==false){
            Phone.focus();
            setClassName("Phone", "error");
            Phone.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(Email, errortext)==false){
            Email.focus();
            setClassName("Email", "error");
            Email.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(EmailRepeat, errortext)==false){
            EmailRepeat.focus();
            setClassName("EmailRepeat", "error");
            EmailRepeat.style.border="2px solid #ff0000";
            return false;
        }
       
        if(validering_kraevet(CompanyCategory, errortext)==false){
            CompanyCategory.focus();
            setClassName("CompanyCategory", "error");
            CompanyCategory.style.border="2px solid #ff0000";
            return false;
        }
        if(validering_kraevet(JobFunction, errortext)==false){
            JobFunction.focus();
            setClassName("JobFunction", "error");
            Jobfunction.style.border="2px solid #ff0000";
            return false;
        }
       
        if(validering_emails(EmailRepeat, Email, "Emails doesnt match")==false){
            EmailRepeat.focus();
            setClassName("EmailRepeat", "error");
            EmailRepeat.style.border="2px solid #ff0000";
            return false;
        }
       
    }
}
Avatar billede roenving Novice
06. februar 2008 - 13:33 #5
Der mangler en return true nederst:

        if(validering_emails(EmailRepeat, Email, "Emails doesnt match")==false){
            EmailRepeat.focus();
            setClassName("EmailRepeat", "error");
            EmailRepeat.style.border="2px solid #ff0000";
            return false;
        }
       
    }
    return true;
}
Avatar billede w13 Novice
13. februar 2008 - 16:16 #6
Kommet videre her?
Avatar billede w13 Novice
24. april 2008 - 12:07 #7
Lukketid?
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