Foros del Web » Programando para Internet » Javascript »

Problema con funcion javascript que cuenta los checkbox seleccionados

Estas en el tema de Problema con funcion javascript que cuenta los checkbox seleccionados en el foro de Javascript en Foros del Web. Estimados, tengo un problema con una funcion javascript que me cuenta los checkbox que han sido seleccionados por el usuario. La cantidad de checkbox se ...
  #1 (permalink)  
Antiguo 21/03/2011, 12:57
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Problema con funcion javascript que cuenta los checkbox seleccionados

Estimados, tengo un problema con una funcion javascript que me cuenta los checkbox que han sido seleccionados por el usuario. La cantidad de checkbox se listan de acuerdo a los datos que tngo en mi BD por lo que no es una cantidad fija. El problema surge cuando solo tengo un registro por mostrar, la funcion no detecta que este checkbox fue seleccionado.Destaco que sólo es en este caso que la funcion no hace lo deseado.

Aqui el codigo de la funcion:

<script type="text/javascript">
function validaEliminaAsistencia(){

var errores =''; //errores del formulario
var sum =0; //suma los ambitos seleccionados
for(var i = 0; i < document.form.tutorias.length; i++){
if(document.form.tutorias[i].checked){
sum = sum + 1;
}
}
if(sum ==0)
{
errores+='- Debe seleccionar al menos una tutoria a eliminar.\n';
}
if(errores)
{
alert('Usted tiene el(los) siguiente(s) error(es):\n'+errores);
}
else if(confirm('Desea eliminar la Tutoria Seleccionada')){
document.form.submit();
}

document.MM_returnValue = (errores == '');

}
</script>

Aqui esta el codigo del formulario

<form id="form" name="form" method="post">

Tutorias Realizadas en el Mes:<br /><br />

<table>
<?
$NroRegistros=mysql_num_rows($TutoriasxTutor);
$contador=1;
if($NroRegistros!=0){
?>
<tr>
<td width="80" align="center" > <b> Tutoría N° <b/></td>
<td width="250" align="center"> <b>Descripción<b/></td>
<td width="103" align="center"> <b>Fecha<b/></td>
<td width="100" align="center"> <b>Estado</b></td>
<td width="100" align="center"> <b>Eliminar</b></td>
</tr>
<?
do{
?>
<tr align="center">
<td width="80"><? echo $contador; $contador=$contador+1;?></td>
<td width="270" align="justify"><? echo $row_TutoriasxTutor['descripcion_tutoria_reg']?></td>
<td width="103"><? echo $row_TutoriasxTutor['fecha']?></td>
<td width="100"><? echo $row_TutoriasxTutor['estado_tutoria'];?></td>
<td><input name="tutorias[]" id="tutorias"type="checkbox" value="<? echo $row_TutoriasxTutor['id_tutoria'];?>" /></td>
</tr>

<?
}while($row_TutoriasxTutor = mysql_fetch_assoc($TutoriasxTutor));
}else{
?>

<br />
<br />
<div align="center"><b>No existen registros asociados</b></div>
<?
}

?>
</table>
<br /><br />
<div align="center"><input name="eliminar" type="button" id="button1" value="Eliminar" onClick="javascript: validaEliminaAsistencia();return document.MM_returnValue"/></div>

</form>


</body>
?>
  #2 (permalink)  
Antiguo 21/03/2011, 14:12
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Problema con funcion javascript que cuenta los checkbox seleccionados

Esto es por que javascript no devuelve un array cuando solo encuentra 1 elemento (devuelve solo el elemento).

simplemente remplaze

Código:
for(var i = 0; i < document.form.tutorias.length; i++){
if(document.form.tutorias[i].checked){
sum = sum + 1; 
}
}
por este

Código:

var maximo = document.form.tutorias.length;

	
	
var anum=/(^\d+$)|(^\d+\.\d+$)/
if (anum.test(document.form.tutorias.length)){} else {
maximo = 1;
}


	if(maximo ==1){
		if(document.form.tutorias.checked){
	sum = 1;	
		}
	} else {

   for(var i = 0; i <maximo; i++){
      if(document.form.tutorias[i].checked){
           sum = sum + 1; 
      }
   }

}
y listo, ya funciona.
Suerte.
  #3 (permalink)  
Antiguo 22/03/2011, 08:31
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Problema con funcion javascript que cuenta los checkbox seleccionados

funciona de maravilla...muy agradecido InkarC

Etiquetas: checkbox, funcion
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:30.