Avatar billede webbe Nybegynder
17. maj 2002 - 12:56 Der er 10 kommentarer og
1 løsning

Validering på radio-button

Hejsa

Jeg bruger følgende script til at validere om en række tekst-felter er udfyldt:

<script language="javascript">
<!--
function checkForm( frm ){
    //var svar = frm.option.value;
    var navn = frm.navn.value;
    var adr = frm.adr.value;
    var post = frm.postal.value;
    var city = frm.city.value;
    var mail = frm.mail.value;
    var err = "";
   
    //(svar.value == 0 )?err+="* Du skal vælge et svar!\n":void(null);
    (navn.length == 0 )?err+="* Du skal skrive dit navn!\n":void(null);
    (adr.length == 0 )?err+="* Du skal skrive din adresse!\n":void(null);
    (post.length == 0 )?err+="* Du skal skrive et postnummer!\n":void(null);
    (city.length == 0 )?err+="* Du skal skrive en by!\n":void(null);
    (mail.indexOf("@") < 0 )?err+="* E-mail adresse er ikke gyldig!\n":void(null);
   
    if( err.length > 0 ){
        alert( err );
            return false;
    }
    return true;
}
//-->
</script>

Jeg har også 3 radio-buttons med samme navn men forskellig værdi, som jeg også gerne vil lave en validering på, så man ikke kan submitte formularen uden at have valgt ét af de 3 svarmuligheder.

Hvordan får jeg koblet det på?
Avatar billede jakoba Nybegynder
17. maj 2002 - 13:15 #1
var radioknapper = frm.radioknapnavn;
if (    !radioknapper[0].checked
    && !radioknapper[1].checked
    && !radioknapper[2].checked
  ) {  // ingen af dem er valgt
    err += "* du skal vælge en radioknap!\n";
}

hvis du har mange knapper kan det være bedre at bruge en for-løkke :-)

mvh JakobA
Avatar billede Slettet bruger
17. maj 2002 - 15:05 #2
Det er vist imod standarderne ikke at have checked en af dine radio-buttons i forvejen. Og så er dit problem jo løst!

<input type="radio" name="gruppe1" value="Aaaaaaaaaargh" checked>
Avatar billede webbe Nybegynder
17. maj 2002 - 16:27 #3
phoenixv:

Normalt ville jeg også have sat den ene til at være checked som standard, men da der er tale om en quiz vil vi ikke give brugeren noget foruddefineret valg.
Avatar billede webbe Nybegynder
17. maj 2002 - 16:37 #4
jakoba:

Vil det blive sådan her:

<script language="javascript">
<!--
function checkForm( frm ){
    var svar = frm.option;
    var navn = frm.navn.value;
    var adr = frm.adr.value;
    var post = frm.postal.value;
    var city = frm.city.value;
    var mail = frm.mail.value;
    var err = "";
   
    if    (
            !svar[0].checked
            && !svar[1].checked
            && !svar[2].checked
        ){
                  err+="* Husk at vælge et svar!\n":void(null);
                } 
    (navn.length == 0 )?err+="* Du skal skrive dit navn!n":void(null);
    (adr.length == 0 )?err+="* Du skal skrive din adresse!n":void(null);
    (post.length == 0 )?err+="* Du skal skrive et postnummer!n":void(null);
    (city.length == 0 )?err+="* Du skal skrive en by!n":void(null);
    (mail.indexOf("@") < 0 )?err+="* E-mail adresse er ikke gyldig!n":void(null);
   
    if( err.length > 0 ){
        alert( err );
            return false;
    }
    return true;
}
//-->
</script>
Avatar billede webbe Nybegynder
17. maj 2002 - 16:40 #5
jakoba:

Mine radio-buttons har samme navn - ved ikke om det har noget at sige!?
Avatar billede atn Nybegynder
18. maj 2002 - 03:02 #6
Heysa !

Prøv denne...

venligst

<ATN/>

    <script language="javascript" type="text/javascript">
    function checkRadioButtons(domPath) {
        for (var i = 0; i < domPath.length; i++) {
            if (domPath[i].checked) {
                return true;
            }
        }
        return false;
    }

    function checkForm( frm ){
        var svar = frm.option;
        var navn = frm.navn.value;
        var adr = frm.adr.value;
        var post = frm.postal.value;
        var city = frm.city.value;
        var mail = frm.mail.value;
        var err = "";
       
        if (!checkRadioButtons(frm.option)) {
            err += "* Husk at vælge et svar!\n":void(null);
        } 
       
        (navn.length == 0 )?err+="* Du skal skrive dit navn!\n":void(null);
        (adr.length == 0 )?err+="* Du skal skrive din adresse!\n":void(null);
        (post.length == 0 )?err+="* Du skal skrive et postnummer!\n":void(null);
        (city.length == 0 )?err+="* Du skal skrive en by!\n":void(null);
        (mail.indexOf("@") < 0 )?err+="* E-mail adresse er ikke gyldig!\n":void(null);
       
        if( err.length > 0 ){
            alert( err );
            return false;
        }
        return true;
    }
    //-->
    </script>
Avatar billede webbe Nybegynder
19. maj 2002 - 10:46 #7
avn:

Tjekker det lige på tirsdag.
Er ikke på arbejde før. ;0)
Avatar billede webbe Nybegynder
21. maj 2002 - 09:17 #8
atn:

Har lige tjekket det du postede og får en fejl på det.

Den siger "Tegnet ; var ventet"

Mit script er nu sådan her:

<script language="javascript">
<!--
function checkRadioButtons(domPath){
    for(var i = 0; i < domPath.length; i++){
        if(domPath[i].checked){
            return true;
        }
    }
    return false;
}

function checkForm( frm ){
    var svar = frm.option;
    var navn = frm.navn.value;
    var adr = frm.adr.value;
    var post = frm.postal.value;
    var city = frm.city.value;
    var mail = frm.mail.value;
    var err = "";
   
    if(!checkRadioButtons(frm.option)){
        err+="* Husk at vælge et svar!\n":void(null);
    }
   
    (svar.value == 0 )?err+="* Du skal vælge et svar!\n":void(null);
    (navn.length == 0 )?err+="* Du skal skrive dit navn!\n":void(null);
    (adr.length == 0 )?err+="* Du skal skrive din adresse!\n":void(null);
    (post.length == 0 )?err+="* Du skal skrive et postnummer!\n":void(null);
    (city.length == 0 )?err+="* Du skal skrive en by!\n":void(null);
    (mail.indexOf("@") < 0 )?err+="* E-mail adressen er ikke gyldig!\n":void(null);
   
    if( err.length > 0 ){
        alert( err );
            return false;
    }
    return true;
}
//-->
</script>

Hvad er der galt?
Avatar billede atn Nybegynder
21. maj 2002 - 09:24 #9
Heysa !

Kan du ikke sende formen du checker med også....

Så er det lidt lettere....

Venligst

<ATN/>
Avatar billede webbe Nybegynder
27. maj 2002 - 14:09 #10
Okay - kommer her:

<form method="POST" action="comp_save.asp" onSubmit="return checkForm(this);">
                                          <input type="HIDDEN" name="quizid" value="<%=rs("Id")%>">
                                          <b><%=rs("Titel")%></b>
                                          <br><br>
                                          <%=replace(rs("Question"),VbCrLf,"<br>")%>
                                          <br><br>
                                          <input type="RADIO" name="option" value="<%=rs("Option1")%>">&#32;<%=rs("Option1")%><br>
                                          <input type="RADIO" name="option" value="<%=rs("Option2")%>">&#32;<%=rs("Option2")%><br>
                                          <input type="RADIO" name="option" value="<%=rs("Option3")%>">&#32;<%=rs("Option3")%>
                                          <br><br>
                                          Navn<br>
                                          <input type="TEXT" name="navn" size="30"><br>
                                          Adresse<br>
                                          <input type="TEXT" name="adr" size="30"><br>
                                          Postnr.<br>
                                          <input type="TEXT" name="postal" size="5" maxlength="4"><br>
                                          By<br>
                                          <input type="TEXT" name="city" size="20"><br>
                                          E-mail<br>
                                          <input type="TEXT" name="mail" size="30">
                                          <br><br>
                                          <input type="SUBMIT" name="submit" value="Send svar">
                                          <br><br>
                                          </form>
Avatar billede webbe Nybegynder
12. juni 2002 - 22:05 #11
Laver det med en IF-sætning i den fil jeg sender oplysningerne til istedet for.
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