Foros aprenderaprogramar.com
		Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: omikron87 en 23 de Noviembre 2018, 21:56
		
			
			- 
				Hola, tengo un problema para validar un formulario de HTML en JavaScript, ya que no me comprueba ningún campo. Agradecería sus ayudas. Gracias!
 
 Pongo solo el formulario en HTML para que no sea tan largo:
 
 <form action="registrar.php" method="post" class="form-register" onsubmit="return validar()">
 <div class="row half">
 <div class="12u">
 <input class="text" type="text" name="name" id="name" placeholder="Nombre y apellido" />
 </div>
 </div>
 <div class="row half">
 <div class="12u">
 <input class="text" type="text" name="email" id="email" placeholder="Email" />
 </div>
 </div>
 <div class="row half">
 <div class="12u">
 <textarea name="message" id="message" placeholder="Escriba aquí su mensaje..."></textarea>
 </div>
 </div>
 <div class="row half">
 <div class="12u">
 <ul class="actions">
 <li>
 <input type="submit" value="Enviar" class="button alt" />
 </li>
 </ul>
 </div>
 </div>
 </form>
 
 
 
 El código de JavaScript es el siguiente:
 
 function validaVacio(valor) {
 valor = valor.replace(" ", "");
 valor = valor == undefined ? "" : valor;
 if (!valor || 0 === valor.trim().length) {
 return true;
 }
 else {
 return false;
 }
 }
 
 function validar(){
 
 var correo = document.getElementById("email").value;
 var nombre = document.getElementsByName("name")[0].value;
 var text = document.getElementsByName("message")[0].value;
 
 var expr = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 
 //COMPRUEBA MAIL, NOMBRE Y TEXT AREA
 if ( !expr.test(correo) )
 {
 alert("Error: La dirección de correo " + correo + " es incorrecta.");
 return false;
 
 else if( !expr.test(nombre) )
 {
 alert("Error: La dirección de correo " + nombre + " es incorrecta.");
 return false;
 }
 
 else if( !expr.test(text) )
 {
 alert("Error: La dirección de correo " + text + " es incorrecta.");
 return false;
 }
 
 }
 
 //COMPRUEBA CAMPOS VACIOS
 if ( validaVacio(correo.value) || validaVacio(nombre.value) || validaVacio(text.value)) {
 alert("Los campos no pueden quedar vacios");
 return false;
 }
 return true;
 }
 
 
 
- 
				Buenas, para pegar código, poner título a los temas, etc. mírate este hilo: https://aprenderaprogramar.com/foros/index.php?topic=1460.0 Para pegar código hazlo como se indica en ese hilo, no lo pegues como citas.
 
 En tu código empieza por revisar la sintaxis del if else, no la tienes bien. Mira en https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=797:if-else-if-else-if-javascript-condicionales-del-flujo-o-estructuras-de-decision-ejemplos-ejercicios-cu01119e&catid=78&Itemid=206 cómo se construye un if else.
 
 En este fragmento tienes un error de sintaxis ya que no tienes bien cerradas las llaves del if.
 
 if ( !expr.test(correo) )
 {
 alert("Error: La dirección de correo " + correo + " es incorrecta.");
 return false;
 
 else if( !expr.test(nombre) )
 
 
 Tienes que revisar toda la sintaxis de tu código. En el curso de JavaScript en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 puedes ver ejemplos de todas las construcciones JavaScript y de validaciones
 
 Salu2