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;
}