Foros del Web » Programando para Internet » Javascript »

Problema con FOR

Estas en el tema de Problema con FOR en el foro de Javascript en Foros del Web. Hola a todos. Tengo un problema que no consigo solucionar. Tengo la el siguiente código. <SCRIPT language="JavaScript"> function color(form) { if(form.prob.checked == true) {document.getElementById('celda').style.background Color ...
  #1 (permalink)  
Antiguo 19/05/2006, 16:17
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Problema con FOR

Hola a todos.

Tengo un problema que no consigo solucionar. Tengo la el siguiente código.

<SCRIPT language="JavaScript">
function color(form)
{
if(form.prob.checked == true)
{document.getElementById('celda').style.background Color = "#FF1010"}
else {document.getElementById('celda').style.background Color ="#DADADA"}
}
</SCRIPT>
....

<TD align="center" id="celda">PRUEBA1<br>
<INPUT type="checkbox" name="prueba1" id="prob" onclick="color(this.form);">
</TD>

Esto lo que hace es que al pulsarse el checkbox este cambia de color, y vuelve a su color original al quitar la marca del checkbox.

El problema viene pues la tabla contiene un total de 100 celdas, cada una con un checkbox que deben actuar como el ejemplo.

Intento hacer un FOR para que me cree los condicionales para cada una de las celdas. Pero no puedo hacerlo.

He probado con esto.

function color(form)
{
for(n=0;n<99;n++)
{
if(form.prob[n].checked == true)
{document.getElementById('celda'+n).style.backgrou ndColor = "#FF1010"}
else {document.getElementById('celda').style.background Color ="#DADADA"}
}
}
</SCRIPT>

.....
<TR>
<TD align="center" id="celda0">PRUEBA1<br>
<INPUT type="checkbox" name="prueba1" id="prob0" onclick="color(this.form);">
</TD>
<TD align="center" id="celda1">PRUEBA2<br>
<INPUT type="checkbox" name="prueba2" id="prob1" onclick="color(this.form)">
</TD>

No consigo que funcione.

Llevo poco tiempo con javascript.

Espero que podáis ayudarme.
  #2 (permalink)  
Antiguo 19/05/2006, 17:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola bruli, bienvenido a los foros:

Puedes pasar el checkbox como parámetro y la celda sería su parentNode...

<SCRIPT language="JavaScript">
function color(check)
{
check.parentNode.style.backgroundColor = (check.checked) ? "#FF1010" :"#DADADA";
}
</SCRIPT>

<TD align="center" id="celda0">PRUEBA1<br>
<INPUT type="checkbox" name="prueba1" id="prob0" onclick="color(this);">
</TD>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 19/05/2006, 17:25
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
hola,

si pudieras modificarle el id a cada checkbox para que quede de esta forma:
Cita:
<TR>
<TD align="center" id="celda0">PRUEBA1<br>
<INPUT type="checkbox" name="prueba1" id="0" onclick="color(this);">
</TD>
<TD align="center" id="celda1">PRUEBA2<br>
<INPUT type="checkbox" name="prueba2" id="1" onclick="color(this)">



</TD>
simplemente bastaría con esto:

Cita:
<script>
function color(x){
document.getElementById('celda'+x.id).style.backgr oundColor = (x.checked==true)?"#FF1010":"#DADADA";
}
si no son posibles estos cambios habría otras soluciones.

saludos


editando: hufff!!! llegué tarde.
__________________
by Capitán Buscapina
.
  #4 (permalink)  
Antiguo 19/05/2006, 17:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
¡Je, je! ... los típicos choques

¡Que tal, Capi!

Bueno, también es buena idea, pero poner un número en un id no valida (ya lo he probado)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 20/05/2006, 00:28
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Gracias. Resuelve el problema.

Es más sencillo de lo que parecía.
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 03:56.