tengo un formulario en el cual valido todos los campos pero tengo unos radio buttons que pregunta si tiene correo o no. si dices que si aparece una caja de texto en donde valida el mail ok. si dices que no no muestra la caja de texto.
el problema es que elija o no elija la opcion . me valida que el correo no esta escrito.
como puedo hacer para que al momento de que le diga si al radio button me lo valide y si digo que no valide el siguiente campo y no el correo.
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Formulario2</title> <LINK REL="stylesheet" TYPE="text/css" HREF="hojaestilo.css"> <script language="javascript" type="text/javascript"> //VALIDACION DE FORMULARIOS function validacion(formulario) { var er_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/ var er_telefono = /^([0-9\s\+\-])+$/ //fechas, formato dd/mm/aaaa o d/m/aa var er_mes31dias = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(1999|20[0-1][0-9]|2020)$/ var er_mes30dias = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(1999|20[0-1][0-9]|2020)$/ var er_mes28dias = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(1999|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])$/ var er_mes29dias = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(2000|2004|2007)$/ //direccion de correo electronico var er_email = /^(.+\@.+\..+)$/ var x //comprueba 50 caracteres maximo for(x = 1; x < 5; x++) { if (formulario.elements[x].value.length > 50) { alert('La lontitud máxima permitida para cualquier telefono es de 10 digitos.') return false } } //comprueba campo de nombre if(!er_nombre.test(formulario.nombre.value)) { alert('Favor de escribir un NOMBRE valido.') return false } //comprueba campo de apellidopat if(!er_nombre.test(formulario.apellidopat.value)) { alert('Favor de escribir un Apellido Paterno valido.') return false } //comprueba campo de apellidomat if(!er_nombre.test(formulario.apellidomat.value)) { alert('Favor de escribir un Apellido Materno valido.') return false } //comprueba campos de telefonos (permite campos vacios y guiones) if( !er_telefono.test(formulario.telefono.value) ) { alert('Favor escribir un numero de TELEFONO valido') return false } //comprueba campos de Rut (permite campos vacios y guiones) if( !er_telefono.test(formulario.rut.value) ) { alert('Favor escribir un numero de rut valido') return false } //comprueba campo de Domicilio if(!er_nombre.test(formulario.domi.value)) { alert('Favor de escribir un Domicilio.') return false } //comprueba campo de email if(!er_email.test(formulario.email.value)) { alert('Contenido del campo E-MAIL no válido.') return false } //comprueba la fecha segun calendario (hasta el 2020, ojo) if (!(er_mes31dias.test(formulario.fecha.value) || er_mes30dias.test(formulario.fecha.value) || er_mes29dias.test(formulario.fecha.value) || er_mes28dias.test(formulario.fecha.value))) { alert('Contenido del campo FECHA no válido.') return false } alert('Los campos introducidos son CORRECTOS.') return false //cambiar por return true para ejecutar la accion del formulario } </script> <script language="javascript"> function validar(formulario) { rut=formulario.rut.value; var count=0; var count2=0; var factor=2; var suma=0; var sum=0; var digito=0; count2=rut.length - 1; while(count < rut.length) { sum = factor * (parseInt(rut.substr(count2,1))); suma = suma + sum; sum=0; count = count + 1; count2 = count2 - 1; factor = factor + 1; if(factor > 7) { factor=2; } } digito= 11 - (suma % 11) if(digito==11) { digito=0; } if(digito==10) { digito="k"; } form.dig.value=digito; //alert("Digito Verificador -->> "+digito); } </script> <script language="JavaScript"><!-- function show(object) { if (document.layers && document.layers[object]) document.layers[object].visibility = 'visible'; else if (document.all) { document.all[object].style.visibility = 'visible'; document.all[object].style.zIndex = 100; } } function hide(object) { if (document.layers && document.layers[object]) document.layers[object].visibility = 'hidden'; else if (document.all) document.all[object].style.visibility = 'hidden'; } //--></script> </head> <body onload="FormValidacion.rut.focus(), FormValidacion.rut.value='', FormValidacion.dig.value=''" > <form onsubmit="return validacion(this)" name="form"> <table border="0" width="100%"> <tr><!-- Row 1 --> <td width="200"><small>Nombre:</small><br><input type="text" name="nombre" size="14"></td><!-- Col 1 --> <td width="200"><small>Apellido Pat:</small><br><input type="text" name="apellidopat" size="14"></td><!-- Col 2 --> <td width="200"><small>Apellido Mat:</small><br><input type="text" name="apellidomat" size="14"></td><!-- Col 3 --> </tr> <tr><!-- Row 2 --> <td width="200"><small>Teléfono:</small><br><input type="text" name="telefono" size="14"></td><!-- Col 1 --> <td width="200"><small>Rut:</small><br><input type="text" name="rut" size="9" maxlength="8" onkeyup ="validar(this.form)"> - <input type="text" name="dig" size="1" maxlength="0"></td><!-- Col 2 --> <td width="200"><small>Domicilio</small><br><input type="text" name="domi" size="14"></td><!-- Col 3 --> </tr> <tr><!-- Row 3 --> <td width="200">si <INPUT type="radio" name="valEmail" onClick="show('myId')" value="visible"> no <input type="radio" name="valEmail" onClick="hide('myId')" value="hidden"><br> <div id="myId" style="position: absolute; visibility: hidden;"><small>E-mail:</small><br> <input type="text" name="email" size="14"></div></td><!-- Col 1 --> <td width="200"><small>Fecha De Ingreso (dd/mm/aaaa):</small><br><input type="text" name="fecha" size="14"></td><!-- Col 2 --> <td width="200"></td><!-- Col 3 --> </tr> <tr><!-- Row 4 --> <td width="200"></td><!-- Col 1 --> <td width="200"> </td><!-- Col 2 --> <td width="200"></td><!-- Col 3 --> </tr> <tr><!-- Row 4 --> <td width="200"></td><!-- Col 1 --> <td width="200"> </td><!-- Col 2 --> <td width="200"></td><!-- Col 3 --> </tr> <tr><!-- Row 4 --> <td width="200"></td><!-- Col 1 --> <td width="200"><input type="submit" value="Validar" name="boton_envio" onMouseOver="ejemploRadio()"> </td><!-- Col 2 --> <td width="200"></td><!-- Col 3 --> </tr> </form> </body> </html>