12 de noviembre de 2010

Comprobar en Javascript que se ha activado una casilla de un conjunto

Una pequeña solución rápida para cuando tenemos una página web con un conjunto de casillas de verificación (chebox) y necesitamos comprobar que al menos se ha activado una de ellas.

Los campos en la página html serían como estos:

<input type="checkbox" name="coleccion" value="1">Texto1
<input type="checkbox" name="coleccion" value="2">Texto2
<input type="checkbox" name="coleccion" value="3">Texto3

La función que podría controlarlo sería algo así:

function Hay_Elementos(nombre_campos) {
var hay=false;
elementos = document.getElementsByName(nombre_campos);
for (i=0;i <elementos.length;i++) {
if (elementos[i].checked) hay=true;
}
return (hay);
}

Por último la llamada a esa función se haría así:

if (!Hay_Elementos('coleccion'))
alert("Debe activar al menos una casilla.");

Si no se ha activado ninguna casilla obtendremos el mensaje. En caso contrario el script seguirá su camino.

Y aquí lo dejo para que no se me olvide.