JQuery - Seleccionar y deseleccionar un checkbox

   
Vista:

Seleccionar y deseleccionar un checkbox

Publicado por Alfredo (17 intervenciones) el 18/02/2013 09:54:56
Hola,
tengo un grid que contiene una columna con un checkbox de la siguiente manera:

1
2
3
4
5
6
7
8
<tr primary_key="9"> <td style="width:20px" col="CHK">
<input class="gridCheckBox" type="checkbox" value="9">
 </td> <td col="campo1">lo que sea</td> <td col="campo2">lo que sea</td> <td col="campo3">lo que sea</td> </tr>
<tr primary_key="10"> <td style="width:20px" col="CHK">
 <input class="gridCheckBox" type="checkbox" value="10"> </td> <td col="campo1">lo que sea</td> <td col="campo2">lo que sea</td> <td col="campo3">lo que sea</td> </tr>
 .....
 .....
.....

Hay muchos más TR..., pero bueno.

Y quiero que funcionen como radiobutton ejecutando una serie de acciones automáticamente al seleccionar uno (mostrar una gráfica y un informe).
Ahora mismo lo tengo de tal manera que si selecciono un checkbox y a continuación selecciono otro que esté más abajo funciona todo perfectamente, pero como seleccione otro que esté más arriba, no me deja: tengo que deseleccionar el actual primero y luego seleccionar el de arriba.

Os pongo el código fuente para ver si podéis ver algo y ayudarme, gracias:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var ch=$('.gridCheckBox:checked');
var chv=[]; if(ch.length==1){
showDataPlot();
 for(i=0;i<ch.length;i++){
 chv.push($(ch[i]).val());
}
}else{//Si hay más de 1 chequeado 
for(i=0;i<ch.length;i++){
 if(i==0){
 $('.gridCheckBox[value='+$(ch[i]).val()+']').removeAttr("checked");
 }else{
 chv.push($(ch[i]).val()); showDataPlot();
 }
$.ajax(
{ type: "GET", url: urlApi+'?api=ver_informe&tipo='+location.href+'&cam='+chv.join('|')+xtr, success: function(data){
 if(document.getElementById('resInforme')){
$('#resInforme').detach();
} $("#cuerpo").append(data); $('.close').bind('click',function(){$('.ventana').detach();
});
 } });
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Seleccionar y deseleccionar un checkbox

Publicado por Alfredo (17 intervenciones) el 21/02/2013 09:25:41
es que uso $('.gridCheckBox:checked') que contiene todos los checkbox que estén checkeados en cada momento, pero no consigo identificar al que pulso en cada momento porque siempre los empieza a numerar de arriba a abajo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Seleccionar y deseleccionar un checkbox

Publicado por xve (557 intervenciones) el 21/02/2013 10:18:34
Para hacer el check con jquery puedes hacerlo así:
1
$("#mycheckbox").attr('checked', true);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar y deseleccionar un checkbox

Publicado por Alfredo (17 intervenciones) el 21/02/2013 12:24:02
Ya, pero lo que pasa es que se compone el array chv[] al que se le van guardando tantos elementos como checkbox haya marcados (como máximo le dejo 2) y siempre desmarca el de la posición 0 (es decir, el que está en la parte superior) y marca el que ocupa la posición 1 (es decir, la 2ª realmente), por eso si marco uno y luego marco otro más abajo funciona bien porque lo que ha hecho en el evento click es detectar que hay más de 1 checbox marcado y entonces desmarca el de la posición inferior,
en cambio si marco un checkbox y luego intento marcar otro que esté por arriba, detecta que hay más de un checkbox marcado y el array se genera poniendo en primer lugar el que intento marcar (porque es la posición inferior, por lo que no me deja porque automáticamente lo desmarca) y luego el otro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar y deseleccionar un checkbox

Publicado por Alfredo (17 intervenciones) el 21/02/2013 12:54:28
Necesitaría poder identificar (por algún índice, su primary key o algo así) el checkbox que he marcado y entonces así poder marcar este y desmarcar el otro (también por un índice)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar