Avatar billede lvborn Nybegynder
09. februar 2005 - 16:58 Der er 6 kommentarer

Validering af checkboks

Hvordan validerer jeg følgende?:

Hvis checkboksen er hakket af skal brugeren udfylde feltet med navnet "ratio". Hvis checkboksen ikke er hakket af må brugeren ikke kunne udfylde feltet med navnet "ratio"


<form method="POST" action="send.asp">
    <p><input type="checkbox" name="sam" value="ON"></p>
    <p><input type="text" name="ratio" size="5" value="0"></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
Avatar billede fixxxer Nybegynder
09. februar 2005 - 17:38 #1
Et komplet eksempel:

<html>
<head>
<script>
function valider()
{
    var error;

    if (document.getElementById('chkbox').checked && document.getElementById('ratio').value == '')
    {
        error = 1;
        alert('Du skal udfylde "ratio"!');
    }
    else if (!document.getElementById('chkbox').checked && document.getElementById('ratio').value != '')
    {
        error = 1;
        alert('Du kan ikke udfylde "ratio"!');
    }

    if (!error)
    {
        document.minform.submit();
    }
}
</script>
</head>

<body>

<form method="POST" action="" name="minform">
    <p><input id="chkbox" type="checkbox" name="sam" value="ON"></p>
    <p><input type="text" name="ratio" size="5" value="0"></p>
    <p><input type="button" value="Send" name="B1" onclick="valider();"><input type="reset" value="Nulstil" name="B2"></p>
</form>

</body>

</html>
Avatar billede lvborn Nybegynder
09. februar 2005 - 17:44 #2
Virker perfekt. Tak. Her er de velfortjente points.
Avatar billede fixxxer Nybegynder
09. februar 2005 - 22:00 #3
Du skal markere mit navn i listen ud for tekst feltet, og trykke accepter. Ellers vil spørgsmålet ikke blive lukket.
Avatar billede roenving Novice
11. februar 2005 - 16:04 #4
Hrm, komplet ...

-- og det virker vel også, men det er absolut ikke pænt, for det kan forbedres på adskillige måder:

<html>
<head>
<script>
function valider(f){
  if (f.sam.checked && f.ratio.value == ''){
    alert('Du skal udfylde "ratio"!');
    return false;
  }
  return true;
}
</script>
</head>

<body>

<form method="POST" action="" name="minform" onsubmit="return valider(this);">
    <p><input type="checkbox" name="sam" value="ON" onclick="this.form.ratio.disabled=!this.checked;if(!this.checked)this.form.ratio.value='';"></p>
    <p><input type="text" name="ratio" size="5" value="" disabled="disabled"></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>

</body>

</html>
Avatar billede fixxxer Nybegynder
12. februar 2005 - 11:14 #5
Tja, nu smed jeg det hurtigt sammen, og jeg var faktisk ret overbevist om at man skulle bruge document.getElementById() da de andre metoder er forældede (noget med XHTML) - men det har jeg nok misforstået.
Avatar billede roenving Novice
12. februar 2005 - 11:38 #6
Det med getElementById skulle ikke være en fejl, men vi ved allerede, at vi er i en form, så det kan vi udnytte ...

-- hvordan en xhtml-fortolker skal benyttes på det felt, må vi jo nok vente med endeligt at finde ud af, når der engang kommer en, som virker i almindelige browsere !-)
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