Validar checkbox como arrays

En esta categoría voy a comenzar a publicar post’s con soluciones a problemas que me han quitado el sueño. Las reuniré bajo “dev-notas mentales” y trataré de separarlas por tecnología.
Así que ahi vamos.

Problema:

Tenemos un formulario html hecho de la siguiente manera:

<form method="post" action="algo.php" onsubmit="return Valida()">
<input type="checkbox" name="miCheckbox[]" value="1" />
<input type="checkbox" name="miCheckbox[]" value="2" />
<input type="checkbox" name="miCheckbox[]" value="3" />
<input type="submit" name="bSubmit" /> </form>

Necesitamos que un script php (algo.php) reciba los valores de “miCheckbox” como si fuese un array pero necesitamos validar que al menos 1 esté chequeado.
Para validar recurría siempre a “document.getElementById” para acceder a cada uno de los checkboxes, pero con listas bastante grandes se torna quizás un poco pesado el proceso.

Existe otra manera que podría ser algo mejor:

La función validar podría ser:

function Valida ()
{
if (IsChk('miCheckbox'))
{
//ok, hay al menos 1 elemento checkeado envía el form!
return true;
} else {
//ni siquiera uno chequeado no envía el form
alert ('Chequeame un elemento!');
return false;
}
}
function IsChk(chkName)
{
var found = false;
var chk = document.getElementsByName(chkName+'[]');
for (var i=0 ; i < chk.length ; i++)
{
found = chk[i].checked ? true : found;
}
return found;
}

Como diré siempre: si alguno se encuentra con el problema ahi tiene otro punto de vista.

This entry was posted in dev-notas mentales, js, php, varios and tagged . Bookmark the permalink.

7 Responses to Validar checkbox como arrays

  1. OSCAR2H says:

    gracias me a servido, saludos

  2. Julian says:

    Muchas gracias, es uno de los pocos codigos que sirven sin mucho retoque, es decir solo hice un copy+paste y cambie el nombre del checkbox por el que yo uso… y listo! Funciona perfectamente. Mil gracias.

  3. Laura Morales says:

    Muchisimas gracias, algo bastante detallado y funcional para novatos en programación!!!!

  4. Contreras says:

    Excelente, funciona perfecto !

  5. jesus says:

    el segundo codigo va en algo.php o en el formulario

  6. ale says:

    Jesus, ambos códigos van en la misma página (el form y el trozo de código javascript) … “algo.php” es el script que recibe el post nada más.
    Saludos!

  7. Geovanny Sierra says:

    saludos Maestro

    Disculpe el codigo que puso, me sirvio bastanten muchisimas gracias.

    pero quiro validar que por lo menos seleccione un checkbox y mostrarle un ensaje de que selecione y no consigo hacerle , por favor me podria ayudar

    por favor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>