Te estás complicando mucho para hacer algo tan sencillo. Lo que debes de hacer es enviar un identificador del formulario, buscar en él al combo y verificar su valor; si este es nulo, se muestra el mensaje de alerta, caso contrario, se procede a enviar los datos del formulario.
Código HTML:
Ver original<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1" onsubmit = "return validar(this)">
Código Javascript
:
Ver originalfunction validar(form){
var combo = form.getElementsByTagName("select")[0];
if (!combo.value.length){
alert ("Debe de elegir una opción");
return false;
}
else{
return true;
}
}
Otra manera de validar pero con HTML5 de que se elija una opción del combo es mediante el uso del atributo
required
.
De esta forma, si el usuario no seleccionó una opción válida, se cancelará el envío de datos y se mostrará un mensaje en un pequeño recuadro debajo del combo en el que se le indicará al usuario que debe de elegir una opción de la lista. La desventaja está en que no funcionará en navegadores viejos que son los que no soportan HTML5. Ojo, estás haciendo mal al asignar el mismo
id
a todos los combos que se generen en el bucle. Corrige eso.
Saludos