Avatar billede fronk Nybegynder
01. december 2003 - 21:28 Der er 13 kommentarer og
1 løsning

Tjek på Radio buttons

Hej med jer,

jeg har en formular som indeholder 4 stk. radiobuttons, jeg skal have lavet en tjek på at mindst en af dem er udfyldt. Tjekken skal ligge på knappen som afsender formularen. Er der nogen som kan hjælpe med det?

mvh
F.
Avatar billede termie Nybegynder
01. december 2003 - 22:18 #1
<html>
<head>
<script language="javascript">
       
        function validateForm()
        {
        if((document.form.Name[0].checked == true) || (document.form.Name[1].checked == true) || (document.form.Name[2].checked == true) || (document.form.Name[3].checked == true))
        return true;
        {
        alert("Du har ikke udfyldt formen korrekt");
       
        }
        }
        </script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<form name="form">
1<input type="radio" name="Name"><br>
2<input type="radio" name="Name"><br>
3<input type="radio" name="Name"><br>
4<input type="radio" name="Name"><br>
<input name="afsend" type="submit"  onClick="return validateForm();">

</form>
</body>
</html>
Avatar billede roenving Novice
01. december 2003 - 23:40 #2
-- bortset fra, at det kan skrives en anelse kortere, er den eneste måde at lave den slags validering den, som termie skriver ...

-- og den anelse kortere (og anelse hurtigere !-) er:

        if(document.forms['form'].Name[0].checked||document.forms['form'].Name[1].checked||document.forms['form'].Name[2].checked||document.forms['form'].Name[3].checked)

-- jeg spottede også undervejs en sikrere måde at skrive det på -- specielt i betragtning af risikoen ved at benytte et reserveret navn som element-navn !-)
Avatar billede fronk Nybegynder
02. december 2003 - 12:00 #3
Kan du også hjælpe hvis jeg sammen med de fire radio buttons også skal have et par alm tekst felter hvor der også skal være check på om de er udfyldt.
Avatar billede fronk Nybegynder
02. december 2003 - 12:18 #4
eller er der nogen andre som kan hjælpe. :-)
Avatar billede termie Nybegynder
02. december 2003 - 12:40 #5
Så skal vi nok lige vide om du vil have checket tekst felterne generelt, eller de hænger sammen med "RadioButtons", sådan at hvis man vælger en button så er det det respektive felt der skal checkes eller hvad....!!???
Avatar billede fronk Nybegynder
02. december 2003 - 12:52 #6
sorry,

De skal bare checkes generelt, de hænger ikke sammen med radio buttons.
Avatar billede termie Nybegynder
02. december 2003 - 13:40 #7
<html>
<head>
<script language="javascript">
       
        function validateForm()
        {
                      if(document.forms['form'].radioknap[0].checked||document.forms['form'].radioknap[1].checked||document.forms['form'].radioknap[2].checked||document.forms['form'].radioknap[3].checked)
return true;
{
alert("Du har ikke valgt en radioknap korrekt");
}
}

function validateForm2()
{
   
if (document.forms['form2'].tekst.value == "") {
    alert("Du har ikke udfyldt tekstfeltet korrekt");
    document.forms['form2'].tekst.value = "";
    document.forms['form2'].tekst.focus();
    return false;
}
}
</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<form name="form">
1<input type="radio" name="radioknap"><br>
2<input type="radio" name="radioknap"><br>
3<input type="radio" name="radioknap"><br>
4<input type="radio" name="radioknap"><br>
<input name="afsend" type="submit"  onClick="return validateForm();">
</form>

<form name="form2">
Teksteksempel:<input type="Text" name="tekst"><br>
<input name="afsend" type="submit"  onClick="return validateForm2();">
</form>
</body>
</html>
Avatar billede fronk Nybegynder
02. december 2003 - 13:48 #8
nu kan de godt være at jeg strammer den lidt, men det du har lavet ligger i 2 forskellige forms, og det skulle gerne være i den samme form.
Avatar billede fronk Nybegynder
02. december 2003 - 13:50 #9
jeg smider lige 50 point mere i, så du får lidt for alt dit arbejde. :-)
Avatar billede termie Nybegynder
02. december 2003 - 14:50 #10
Sorry de lidt lange svartider, men prøv den her!!

<script language="JavaScript">
function validateForm()
{
if(document.forms['form'].radioknap[0].checked||document.forms['form'].radioknap[1].checked||document.forms['form'].radioknap[2].checked||document.forms['form'].radioknap[3].checked)
    {
        if (document.forms['form'].tekst.value == "")
            {
                alert("Du har ikke udfyldt tekstfeltet korrekt");
                document.forms['form'].tekst.value = "";
                document.forms['form'].tekst.focus();
                return true;
            }
   
    }
        else alert("Du har ikke udfyldt radiobutton korrekt");
}
</script>
Avatar billede fritz-79th Nybegynder
02. december 2003 - 17:01 #11
Eller denne her, så kan du altid udvide dine radioknapper - uden at du behøver at tilføje noget tl din validering:

function validateForm(){
    var d = document.forms['form'];
    var radio = d.Name;
    var checked = false;
    var text = d.tekst;
    var i;
    for(i=0; i<radio.length; i++){
        if(radio[i].checked){
            checked = true;
        }
    }
    if(!checked){
        alert('udfyld venligst en radio-dims');
        return false;
    }   
    if(text.value == ''){
        alert('udfyld venligst tekstfeltet');
        text.focus();
        return false;
    }   
}
Avatar billede fronk Nybegynder
03. december 2003 - 11:55 #12
Den kommer rigtig nok med en fejl om at jeg ikke har udfyldt radio buttons men den går stadig videre i koden, altså den forsøger at sende formularen alligevel, og det er jo ikke meningen at den skal det.
Avatar billede termie Nybegynder
03. december 2003 - 12:52 #13
Her er så en løsning med god hjælp fra fritz-79th ;-)

<html>
<head>
<script language="javascript">
       
function validateForm(){
    var d = document.forms['form'];
    var radio = d.radioknap;
    var checked = false;
    var text = d.tekst;
    var i;
    for(i=0; i<radio.length; i++){
        if(radio[i].checked){
            checked = true;
        }
    }
    if(!checked){
        alert('vælg venligst en radiobutton');
        return false;
    }   
    if(text.value == ''){
        alert('udfyld venligst tekstfeltet');
        text.focus();
        return false;
    }   
}
</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<form name="form" action="http://www.eksperten.dk">
1<input type="radio" name="radioknap"><br>
2<input type="radio" name="radioknap"><br>
3<input type="radio" name="radioknap"><br>
4<input type="radio" name="radioknap"><br>



Teksteksempel:<input type="Text" name="tekst"><br>
<input name="afsend" type="submit"  onClick="return validateForm();">
</form>
</body>
</html>
Avatar billede fronk Nybegynder
03. december 2003 - 14:58 #14
Tusind tak for din store hjælp.

Endelig fik jeg det til at spille som det skulle.

mvh
F.
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