En tu segundo código estás haciendo un loop para todos los elementos sin distinción, si quieres que haya algunos opcionales tienes que crear una excepciónes.
Código Javascript
:
Ver originalvar form = document.getElementById("formulario");
form.addEventListener("submit", function(event){
event.preventDefault();
var campo = true,
elementos = this.elements,
total = elementos.length,
opcional; //Variable de campo opcional
for (var i = 0; i < total; i++){
//Valor inicial de variable
opcional = false;
//Revisando si es campo opcional
if (elementos[i].name === "imagen1" ||
elementos[i].name === "imagen2" ||
elementos[i].name === "imagen3" ||
elementos[i].name === "imagen4" ||
elementos[i].name === "imagen5" ||
elementos[i].name === "imagen6") {
//Activando variable opcional
opcional = true;
}
if (!elementos[i].value.length && !opcional){
alert ("Debes de ingresar el " + elementos[i].name);
elementos[i].focus();
campo = false;
break;
}
}
if (campo){
this.submit();
}
}, false);
Saludos.