Amigo, primero en principal, al declarar la función "bloquear()", tienes que indicar que La variable FORM es igual a
document.formulario (nombre del formulario) o
document.forms[0] (donde 0 es el índice del formulario) te faltó eso, y además también te faltó en el html la función
ONCLICK de cada radio button de name="sexo".
Aquí va el codigo completo, por lo menos a mí, me funciona:
Código HTML:
Ver original<!-- Inicio Formulario de Contacto por Dasumo-->
<form name="formulario" method="post" action="contacto.php" onSubmit="return Validar(this);"> <label for="apellido">Apellido:
<br> <input id="apellido" name="apellido" type="text" size="27"> <label for="email">Correo Electr
ónico:
<br> <input id="email" name="email" type="text" size="27"> </label><br><br> Masculino
<input type="radio" name="sexo" value="M" id="1" onclick="bloquear();"> Femenino
<input type="radio" name="sexo" value="F" id="2" onclick="bloquear();"> <input id="edad" name="edad" type="text" size="1" maxlength="2"> </label><br><br>
A
<input type="radio" name="upa" value="A" disabled><br> B
<input type="radio" name="upa" value="B" disabled><br> C
<input type="radio" name="upa" value="C" disabled><br> D
<input type="radio" name="upa" value="D" disabled><br> E
<input type="radio" name="upa" value="E" disabled><br><br>
<input type="submit" name="submit" value="Enviar" /><br> <!-- Fin Formulario de contacto -->
Validar.js (código javascript) Cita: function bloquear(){
var form = document.formulario;
if(form.sexo[0].checked){
form.upa[0].disabled = true;
form.upa[1].disabled = true;
form.upa[2].disabled = false;
form.upa[3].disabled = false;
form.upa[4].disabled = false;
}else if(form.sexo[1].checked){
form.upa[0].disabled = false;
form.upa[1].disabled = false;
form.upa[2].disabled = true;
form.upa[3].disabled = true;
form.upa[4].disabled = false;
}
}
function Validar(f) {
var f = document.formulario;
if (f.name.value=='') {
alert("Por favor escriba su Nombre");
f.name.focus();
return (false);
}
if (f.apellido.value=='') {
alert("Por favor escriba su Apellido");
f.apellido.focus();
return (false);
}
if (f.email.value=='') {
alert("Por favor escriba su dirección de correo electrónico");
f.email.focus();
return (false);
}
var patron = /^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*@[0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,4}$/;
if (!patron.test(f.email.value)){
alert("La dirección de email no es correcta.")
return (false)
}
var s="no";
if(f.sexo[1].checked);
for ( var i = 0; i < f.sexo.length; i++ )
{
if (f.sexo[i].checked ){;
s= "si";
break;
}
}
if ( s == "no" ){
alert( "Por favor debe seleccionar Masculino o Femenino" ) ;
return(false);
}
if (f.edad.value=='') {
alert("Por favor instrodusca su edad.");
f.edad.focus();
return (false);
}
var s="no";
if(f.upa[1].checked);
for ( var i = 0; i < f.upa.length; i++ )
{
if (f.upa[i].checked ){;
s= "si";
break;
}
}
if ( s == "no" ){
alert( "Por favor elija una de las opciones." ) ;
return(false);
}
}
Espero haberte ayudado, cualquier duda me avisas.
Un saludo !