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