Creamos la función validarEmail, que devuelve TRUE si el email es válido o FALSE si es inválido:
Código:
function validarEmail(valor) {
if ( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(valor) ){
return true
} else {
return false
}
}
Fuente: [URL="http://lineadecodigo.com/javascript/validar-el-email-con-javascript/"]lineadecodigo.com/[/URL]
Y ahora pasamos a verificar que todo este en orden.
Para eso usamos el evento Javascript "onsubmit":
Código:
/**
* Con window.onload nos aseguramos de que ya
* se hayan cargado todos los elementos de la página
*/
window.onload = function()
{
// El siguiente bloque de código se ejecuta solo cuando se hace el submit del formulario
document.getElementById('formulario').onsubmit = function(event)
{
var form = this,
inputs = form.getElementsByTagName('input'),
error = [],
input;
// Revisamos que todos los inputs tengan algún valor que no sea nulo (obviando el input submit)
for(x in inputs)
{
input = inputs[x]
if(input.type !== 'submit')
{
if(input.value == '')
{
error.push('Debe completar el campo ' + input.name)
}
}
}
// Usamos la función validarEmail creada anteriormente
// Si la validación devuelve FALSE, agregamos el error al array
if( ! validarEmail(form.getElementById('email').value) )
{
error[] = 'El email ingresado no es válido'
}
// Si hay errores, cancela el envío del formulario (event.preventDefault()) y dá una alerta
if(error.length > 0)
{
event.preventDefault()
alert(error.join('\n'))
}
}
}
Espero haya sido de ayuda