Skriptet förutsätter att formen har name="form" och at dina element heter falt1, falt2 och falt3.
<script type="text/javascript">
function kollaForm(){
var validates = true;
if (document.form.falt3.value=="no"){
if (document.form.falt1.value.length == 0 || document.form.falt2.value.length == 0){
alert("Du måste fylla i fälten 1 och 2 eftersom du har svarat no i fält 3.");
validates = false;
}
}
return validates;
}
</script>
...
<form name="form" onsubmit="return kollaForm();">
Förklara gärna detta lite närmare om jag har missat vad du menar...
LesPaul skrev:
Kan man göra det enligt samma konstruktion så jag kan lägga det i JS-Headern skulle det vara bra.
Om falt3 är en ja/nej-fråga kanske du borde ha en radiobox för den istället?
Tack för hjälpen.
Men jag har fler fält, som skall kollas av innan det avslutas. Om jag kör ditt script så bryr den sig inte om vad som står efter utan formuläret postas ändå. Se exempel nedan:
// Här kollas fältet av
if (document._w.pubName.value == "")
{
alert("Du måste ange en kontaktperson.");
return false
}
// Här kontrolleras fältet epost så att det innehåller tecknet @.
if (document._w.pubEmail.value == "" ||
document._w.pubEmail.value.indexOf('@', 0) == -1)
{
alert("Du måste ange en giltig e-postadress.");
return false;
}
// Här kollas fältet av
if (document._w.pubUpplaga.value == "")
{
alert("Du måste ange ett värde.");
return false
}
// Koll av flera fält samtidigt.
var validates = true;
if (document._w.pubFormat3.value=="no"){
if (document._w.pubFormat1.value.length == 0 || document._w.pubFormat2.value.length == 0){
alert("Du måste fylla i fälten 1 och 2 eftersom du har svarat no i fält 3.");
validates = false;
}
}
return validates;
}
// Här kollas fältet av
if (document._w.pubOmfang1.value == "")
{
alert("Du måste ange antal sidor.");
return false
}
// Koll av flera fält samtidigt.
var validates = true;
if (document._w.pubFormat3.value=="no"){
if (document._w.pubFormat1.value.length == 0 || document._w.pubFormat2.value.length == 0){
alert("Du måste fylla i fälten 1 och 2 eftersom du har svarat no i fält 3.");
return false;
}
}
}