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>
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>
09. februar 2005 - 17:44
#2
Virker perfekt. Tak. Her er de velfortjente points.
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.
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>
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.
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 !-)
Vi tilbyder markedets bedste kurser inden for webudvikling