Tema: Checkboxes
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2008, 12:08
Crisss
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
Checkboxes

Hola a todos!
Escribo porque llevo muuucho muuucho tiempo muy mosqueda con un problema de checkboxes y no hay manera humana de resolverlo.

Tengo una aplicacion Web en la que salen imágenes y bajo éstas, un checkbox. Si la imagen está metida en un carrito de la compra, cuando aparezca en pantalla debe aparecer seleccionado su checkbox correspondiente.
Uso páginas JSP con javascript y ajax.
El código es:
Código:
i=0;
j=0;
idCheckBox = "checkBox0";
idCheck = "check0";		
while (i < data.listSize){
   cart.existsItem(listName[i+1],listId[i+1],callBackHandler4);
   if(exists){	
      alert("es true");		
      document.getElementById(idCheckBox).innerHTML = '<input Type="checkbox" id="' + idCheck + '" onClick="selectCh('+i+')" checked/>';
   }
   else{
      alert("es false");
      document.getElementById(idCheckBox).innerHTML = '<input Type="checkbox" id="' + idCheck + '" onClick="selectCh('+i+')"/>';
   }
   i++;
   idCheckBox = "checkBox" + i;
   idCheck = "check" + i;
}
cart.existsItem(...) es una función en Ajax que me devuelve 1 o 0 (=está presente en el carrito o no)
1)Si dejo el código tal cual está todo funciona bien, pero claro, el usuario ve continuamente "es true" o "es false", con lo cual eso tiene que desaparecer...además de salirme el "null" que explico en 3).
2)Si quito los alert de "es true" o "es false" nunca me selecciona nada
3)Si comparo con el elemento que debería (en cart.existsItem uso i+1), que debería ser i, detecta los elementos desplazados 1 posición hacia la derecha y por tanto los selecciona tb desplazados hacia la derecha. Por eso he metido el "i+1", pero claro!, al llegar al final, como no existe el último elemento me saca un null por pantalla...

Alguien me puede por favor ayudar a solucionar esto??Llevo meses con el tema y no hay manera, ya no se si pensar que javascript anda cojo de algún sitio o que...

Muchas gracias!
Cristina.