Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2003, 05:20
Julio Garcia
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años
Puntos: 0
Mejorando script checkbox múltiple.

Hola, amigos: Estoy utilizando este conocido código de javascript.internet.com para marcar-desmarcar automáticamente campos checkbox:


<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Modified By: Steve Robison, Jr. ([email protected]) -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return "Desmarcar Todos"; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return "Marcar Todos"; }
}
// End -->
</script>
</HEAD>

<BODY>

<form name=myform action="" method=post>
<table>
<tr><td>
<b>Your Favorite Scripts & Languages</b><br>
<input type=checkbox name=list value="1">Java<br>
<input type=checkbox name=list value="2">JavaScript<br>
<input type=checkbox name=list value="3">ASP<br>
<input type=checkbox name=list value="4">HTML<br>
<input type=checkbox name=list value="5">SQL<br>
<br>
<input type=button value="Check All" onClick="this.value=check(this.form.list)">
</td></tr>
</table>


El código funciona perfectamente. El problema viene cuando tienes varios grupos de check y los quieres manejar independientemente. Por ej:

<input type=checkbox name=list1 value="1">Java<br>
<input type=checkbox name=list1 value="2">JavaScript<br>
<input type=button value="Check All" onClick="this.value=check(this.form.list1)"><br>

<input type=checkbox name=list2 value="1">Java<br>
<input type=checkbox name=list2 value="2">JavaScript<br>
<input type=button value="Check All" onClick="this.value=check(this.form.list2)"><br>

<input type=checkbox name=list3 value="1">Java<br>
<input type=checkbox name=list3 value="2">JavaScript<br>
<input type=button value="Check All" onClick="this.value=check(this.form.list3)"><br>

A simple vista parece que continúa trabajando bien, pero si se "juega" un poco con los botones veremos que hay ocasiones que hay que pulsar el botón 2 veces porque la variable checkflag toma el valor del último botón pulsado sin reconocer si es el primer botón, el segundo, etc.


Ahora la pregunta: No se podría construir un array para darle un valor verdadero-falso a cada botón independientemente?

Gracias de antemano por vuestra colaboración. Un Saludote!
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)