Primero, necesitas cancelar el evento
submit, el cual se produce cuando envías los datos del formulario para procesarlos. Luego, bastaría con que obtengas al conjunto de elementos del formulario y con un bucle realices la verificación de cada elemento. Podrías utilizar una variable que inicie con un valor determinado y que cambiará en caso se encuentre algún elemento vacío, de acuerdo al valor final de dicha variable, realizas o no el envío de los datos.
Código Javascript
:
Ver originalvar formulario = document.getElementById("id_formulario"),
elementos = formulario.elements,
total = elementos.length;
formulario.addEventListener("submit", function(event){
event.preventDefault(); //Cancelo el envío
var enviar = true; //La variable
for (var i = 0; i < total; i++){
if (!elementos[i].value.length){
alert ("Debes de ingresar datos en el campo " + elementos[i].name);
enviar = false; //Cambia el valor de la variable
break; //Salgo del bucle
}
}
if (enviar) this.submit(); //Si todos los campos tienen valores, envío los datos
}, false);
Para cancelar el evento, utilizo el método
preventDefault, mientras que el envío de los datos, lo realizo con el método
submit (que es distinto al evento
submit, pero están relacionados).
Saludos