Inicio > Informática > Validación CheckBox como arreglo (PHP+JS)

Validación CheckBox como arreglo (PHP+JS)

Con la finalidad de ahorrarle un poco de tiempo a la persona que esté buscando esta información, coloco este pequeño código el cual me trajo algún rato de dolor de cabeza ya que al probar algunas de las soluciones encontradas en la web no me funcionaban del todo o no se adecuaban a lo requerido.

Ahi les va.Problema:

Tenemos un formulario html hecho de la siguiente manera:

<form method="post" action="algo.php" onsubmit="return Valida()">

<table>
<tr>
{foreach from=$neuropsiq item=npsiq key=k}  
<td><INPUT  TYPE=CHECKBOX name="miChkbox[]" value="{$npsiq}" />{$npsiq};</td>                                                             
{/foreach} 
</tr>
</table>
<input type="submit" name="bSubmit" /> </form>

Necesitamos que un script php (algo.php) reciba los valores de “miChkbox” como si fuese un array pero necesitamos validar que no estén todos en blanco (no chekeados) y con una cota máximo de checkeos (en este caso 5)

La función validar:


function Valida ()
{

if (IsChk('miChkbox')>5)
{
     alert(-  Máximo 5 elementos a seleccionar);
     return false;
}
else if (IsChk('miChkbox') == 0)
{
     alert(-  No ha seleccionado ningún Diagnóstico);
     return false;
}
else
return true
}

function IsChk(chkName)
{
var found = 0;
var chk = document.getElementsByName(chkName+'[]');
for (var i=0 ; i < chk.length ; i++)
{
found = chk[i].checked ? found+1 : found;
}
return found;
}

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: