Avatar billede macho Praktikant
15. juni 2003 - 12:01 Der er 9 kommentarer og
1 løsning

Check af radio-button

Ja, så er jeg tilbage med en fortsættelse til denne tråd:
http://www.eksperten.dk/spm/363938

Mit problem er, at jeg skal have valideret om en bruger sætter markering i enten "Ja" eller "Nej" i én af to radio-knapper.

Validerings-scriptet ser således ud:

<script language="JavaScript">
<!-- Hide from older browsers
   
//Check the enquiry form is filled in correctly
function CheckForm () {

    //Initialise variables
    var errorMsg = "";

    //Check for a first name
    if (document.frmEnquiry.Name.value == ""){
        errorMsg += "\n\tNavn \t\t- Indtast dit navn\n";
    }
   
    //Check for phone
    if (document.frmEnquiry.tel.value == ""){
        errorMsg += "\n\tTelefonnummer \t- Indtast dit tlf.nr.\n";
    }
   
    //tjek antal personer - senge
    if (document.frmEnquiry.antalpersoner.value == ""){
        errorMsg += "\n\tAntal personer \t- Indtast antal personer (senge)\n";
    }
       
    //Check for an e-mail address and that it is valid
    if ((document.frmEnquiry.email.value == "") || (document.frmEnquiry.email.value.length > 0 && (document.frmEnquiry.email.value.indexOf("@",0) == - 1 || document.frmEnquiry.email.value.indexOf(".",0) == - 1))) {
        errorMsg += "\n\tE-mail adresse \t- Indtast en gyldig e-mail adresse\n";
    }
   
    //tjek morgenmad
    if (document.frmEnquiry.morgenmad.checked == ""){
        errorMsg += "\n\tMorgenmad ønskes \t- Vælg morgenmad (JA eller NEJ)\n";
    }
   
    regex =/^(3[01]|0[0-9]|[12]\d)\/(0[1-9]|1[012])\/\d{4}/;
    dato1 = "0"

    //Check for firstinput
    dat = document.frmEnquiry.firstinput.value;
    if (dat == ""||!regex.test(dat)){
        errorMsg += "\n\tFørste overnatning \t- Indtast første nat i dette format: (DD/MM/ÅÅÅÅ)\n";
    }else{
      dat = dat.split("/");
      var tdate = new Date(parseInt(dat[2]),parseInt(dat[1])-1,parseInt(dat[0]));
      if (tdate.getDate()!=parseInt(dat[0])||tdate.getMonth()+1!=parseInt(dat[1])||tdate.getFullYear()!=parseInt(dat[2])){
        errorMsg += "\n\tFørste overnatning \t- Ugyldig dato (DD/MM/ÅÅÅÅ)\n";
      }else{dato1=tdate.getTime();
        var chdato = new Date().getTime()+ (24*60*60*1000);
        if (chdato>dato1)
          errorMsg += "\n\tFørste overnatning \t- Når du benytter denne formular,\n\t\t\t  kan du tidligst bestille to dage frem\n"
      };
    }

   
   
    //Check for secondinput
    dat = document.frmEnquiry.secondinput.value;
//    alert(dat);
    if (dat == ""||!regex.test(dat)){
        errorMsg += "\n\tSidste overnatning \t- Indtast sidste nat i dette format: (DD/MM/ÅÅÅÅ)\n";
    }else{
      dat = dat.split("/");
      var tdate = new Date(parseInt(dat[2]),parseInt(dat[1])-1,parseInt(dat[0]));
      if (tdate.getDate()!=parseInt(dat[0])||tdate.getMonth()+1!=parseInt(dat[1])||tdate.getFullYear()!=parseInt(dat[2])){
        errorMsg += "\n\tSidste overnatning \t- Ugyldig dato (DD/MM/ÅÅÅÅ)\n";
      }else{
          if(dato1>tdate.getTime())
              errorMsg += "\n\tSidste overnatning \t- Dato kan ikke være tidligere end første nat\n"
          }
     
    }
       
    //If there is aproblem with the form then display an error
    if (errorMsg != ""){
        msg = "______________________________________________________________\n\n";
        msg += "Din besked er ikke blevet sendt da der er problem(er) med formen.\n";
        msg += "Venligst ret problemet(erne) og send formen igen.\n";
        msg += "______________________________________________________________\n\n";
        msg += "Følgende felt(er) skal rettes til: -\n";
       
        errorMsg += alert(msg + errorMsg + "\n\n");
        return false;
    }
   
    return true;
}

var secondupdate = true;

// -->
</script>

Den part, som jeg ikke kan få til at virke, er dette:


    //tjek morgenmad
    if (document.frmEnquiry.morgenmad.checked == ""){
        errorMsg += "\n\tMorgenmad ønskes \t- Vælg morgenmad (JA eller NEJ)\n";
    }

Det er som sagt to radio-knapper, der skal tjekkes på, og enten "Ja" eller "Nej" SKAL vælges.
Avatar billede roenving Novice
15. juni 2003 - 12:06 #1
//tjek morgenmad
    sel = document.frmEnquiry.morgenmad;
   
    if (sel[0].checked == false && sel[1].checked == false){
        errorMsg += "\n\tMorgenmad ønskes \t- Vælg morgenmad (JA eller NEJ)\n";
    }

-- skal lige have nogle radios ind på min standard-checker ...
Avatar billede macho Praktikant
15. juni 2003 - 12:18 #2
-> roenving

det virker helt fint - tak igen for hjælpen. Kast lige et svar :-)
Avatar billede roenving Novice
15. juni 2003 - 12:18 #3
Virker forhåbentligt lige så stabilt hos dig, som hos mig ...

Ofte ville jeg nok loope igennem, men her er det en ja/nej-ting, såeh ...

-- Ville det forøvrigt ikke være en ide, at have et forudvalg og så præsentere de færdige valg (-- lige så prof som fejlene !-)

mvh
jes
Avatar billede macho Praktikant
15. juni 2003 - 14:12 #4
Det er meget bevidst, at jeg ikke har forudvalgt noget til bestilling af morgenmad, da der ikke ubevidst skal kunne svares ja/nej...

tak for hjælpen - igen, igen...

mvh
Jørgen...
Avatar billede roenving Novice
15. juni 2003 - 14:14 #5
oki ...
-- og tak for points ;~}
Avatar billede macho Praktikant
15. juni 2003 - 14:17 #6
-> roenving

måske du også har et svar på, hvordan jeg skal tilføje en validering på en drop-down menu, hvor der kun skal kunne vælges ét svar i listen?
Avatar billede roenving Novice
15. juni 2003 - 14:21 #7
Jeps, du har altså ikke søgt på den ...

Men der har du jo forudvalgt ?-)
Avatar billede roenving Novice
15. juni 2003 - 14:22 #8
-- så hvad skal checkes ?o]
Avatar billede macho Praktikant
15. juni 2003 - 14:29 #9
Det er ikke lande-valget i det her tilfælde, men et par flere felter jeg er ved at tilføje. Landefeltet er med vilje forudvalgt, da langt de fleste brugere er danske!
Men jeg har allerede selv fået lavet validering på et drop-down:


   
    //tjek husdyr
    sel = document.frmEnquiry.husdyr;
   
    if (document.frmEnquiry.husdyr.options[document.frmEnquiry.husdyr.selectedIndex].value == ""){
        errorMsg += "\n\tHusdyr \t- Vælg husdyr (Hund eller Kat)\n";
    }

takker igen for hjælpen :-)
Avatar billede roenving Novice
15. juni 2003 - 14:33 #10
oki ,-)
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporterelever til Lokal IT på Aalborg Kaserne

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre