Foros del Web » Programando para Internet » Javascript »

Validar array checkbox con javascript

Estas en el tema de Validar array checkbox con javascript en el foro de Javascript en Foros del Web. Que tal tengo problemas con esto busco y busco y nada es la primera ves que posteo agradeceria si pdorueran darme alguna solucion un saludo ...
  #1 (permalink)  
Antiguo 28/08/2012, 22:30
 
Fecha de Ingreso: agosto-2012
Mensajes: 16
Antigüedad: 11 años, 7 meses
Puntos: 1
Validar array checkbox con javascript

Que tal tengo problemas con esto busco y busco y nada es la primera ves que posteo agradeceria si pdorueran darme alguna solucion un saludo
Problema:
Tengo unos campos tipo checkbox 4 campos y estan en 1 array nesesito validar que este seleccionado por lo menos 1 para que el form pase ala siguiente pagina este es mi codigo

<?php
$consulta_planes = "select * from planes,tipos_planes where planes.pls_tipo = tipos_planes.tpp_codigo and PLANES.PLS_VER=1 and planes.PLS_CODIGO!=$PRS_PLAN";
$query_planes = mysql_query ($consulta_planes);
$total_planes=mysql_num_rows($query_planes);
while($fila_planes = mysql_fetch_array($query_planes))
{echo "<div><li><input id='submit_deplegable' name='PRS_PLAN[]' type='checkbox' value='".$fila_planes['PLS_CODIGO']."'/><spam>".$fila_planes['PLS_NOMBRE']."</spam></li></div>";
}

mysql_free_result($query_planes);
//codigo usado grasias a http://www.ajaxshake.com/plugin/ES/859/80a933b6/menu-desplegable-con-html5-css3-y-jquery-html5nav.html solo parte del codigo es de mi autoria el resto es de la web del autor tanto la lista como el css , simplemente se realizo unas alteraciones para obtener lo deseado.
?>


e intengo validarco con javascript y nada llamo ala funcion validar()


function validar(){
for(var i = 0; i <form1.PRS_NOMBRE.length; i++){
if(form1.PRS_NOMBRE[i].checked)
else{alert('Debes seleccionar al menos una opcion'); }
}


esto es como se ve




lo uico que quiero es que si esta por lo menos 1 chekeado prosiga a la siguiente pag del form si no que me mande una alerta , ya estoy al punto de la desesperacion no logro conseguirlo =( un saludo , pdt busque y bsuque pero ninguna de las soluciones me a servido
  #2 (permalink)  
Antiguo 29/08/2012, 02:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validar array checkbox con javascript

Hola:

Estoy convencido de que para validaciones es mejor evitar las librerías (jquery, etc...)

Si tus checkboxes lleban el nombre "PRS_PLAN[]", los puedes recorrer con:

for (i = 0, checks = document.forms[el_nombre_del_form]["PRS_PLAN[]"]; i < checkes.length; i++)

Y consultar checkes[i].check

para detectar si hay alguno checkeado se podría crear un acumulador o con una variable lógica, por ejemplo inicializado a false, y hacer una operación "OR" con el valor de cada checkbox. Si después de recorrer el array sigue false es porque no hay ninguno "checked".

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 29/08/2012, 17:44
 
Fecha de Ingreso: agosto-2012
Mensajes: 16
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Validar array checkbox con javascript

Muchas grasias por la respuesta pero no nada que logro hacerlo bien estoy haciendo mal la expresion?
Código HTML:
for (i = 0, checks = document.forms[form1]["PRS_PLAN[]"]; i < checks.length; i++)
{
if(checks[i].check){alert('si esta chekeado'); }else{alert('no esta chekeado1'); }
}
alguien podria darme otra solucion o una forma que podria hacerlo
  #4 (permalink)  
Antiguo 29/08/2012, 19:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validar array checkbox con javascript

Hola:

Evidentemente puse mal la condición... no existe el atributo check sino "checked"; y no debes poner una alerta por cada paso del bucle, sino acumular en una variable el resultado... u obtener el valor lógico acumulado...

checkeados = 0;
for (i = 0, checks = document.forms[form1]["PRS_PLAN[]"]; i < checks.length; i++)
{
if(checks[i].checked){checkeados++;}
}
// aquí la consulta de checkeados...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 29/08/2012, 21:19
 
Fecha de Ingreso: agosto-2012
Mensajes: 16
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Validar array checkbox con javascript

Muchas grasias ahora lo tendre mas en cuenta apenas termine de areglarlo jeje tuve que buscar en foros en ingles deiagual amnera grasias
y por si alguna personas nesesita la solucion completa uno nunca sabe aqui posteo el codigo

Código:
<html>
<head>
<script language="JavaScript">
function validar()
{

    var a=document.some_form['graduate[]'];
	alert("Tamaño del array"+a.length);
	var p=0;
	for(i=0;i<a.length;i++){
		if(a[i].checked){
			alert(a[i].value);
			p=1;
		}
	}
	if (p==0){
		alert('Seleccione por lo menos 1 casilla');
		return false;
	}
			
	document.some_form.submitted.value='yes';
	return true;
}
</script>
</head>
<body>
<form name="some_form" >
             
<input type="checkbox" name="graduate[]" value="telugu">Telugu
<input type="checkbox" name="graduate[]" value="Computer sceince">Computer Science
<input type="checkbox" name="graduate[]" value="Mathematics">Mathematics
  

<input type="submit" name="Submit" id='boton-ingresar' value="Agregar" onclick="this.form.action='lalal.php'; return validar()"/>

</form>
</body>
</html>
  #6 (permalink)  
Antiguo 06/08/2013, 17:01
Avatar de Isaac_Calderon  
Fecha de Ingreso: agosto-2013
Ubicación: Chilpancingo
Mensajes: 11
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Validar array checkbox con javascript

Gracias por postear la solución, me sirvió de mucho, serviopantoja.

Etiquetas: ajax, checkbox, funcion, html, input, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:06.