Foros del Web » Programando para Internet » Javascript »

Problema usando DOM para establecer y leer un input

Estas en el tema de Problema usando DOM para establecer y leer un input en el foro de Javascript en Foros del Web. Hola a todos. Rebuscando me he topado con este excelente foro y os escribo para comentaros mi problema. Tengo que hacer para una práctica un ...
  #1 (permalink)  
Antiguo 05/05/2010, 11:36
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Problema usando DOM para establecer y leer un input

Hola a todos. Rebuscando me he topado con este excelente foro y os escribo para comentaros mi problema.

Tengo que hacer para una práctica un sudoku, usando javascript y DOM. Para la página xhtml 1.0 strict.

El orden de ejecución es el siguiente:

1-Se elije el nivel de dificultad
2-Se carga un sudoku de ese nivel
3- Se juega

El sudoku en sí es una tabla 9x9 con un input en cada celda.

Os pongo un trozo de la función que carga el sudoku.
Código:
cell_var = document.getElementById(cell_name);
(initial[index]==0)? cell_var.setAttribute("value", ""): cell_var.setAttribute("value", initial[index]);
La función va pasando por cada celda, que son los input, y los va rellenando. En un string tengo las cifras iniciales para el sudoku, donde el 0 representa una celda vacía.

Ahora bien, uno de los requisitos, es que cuando pulsamos 0, el contenido de la celda, se borra. Para ello he usado una función llamada desde el evento onkeypress.

En dicha función hago básicamente lo siguiente:

Código:
var tecla = (document.all) ? e.keyCode : e.which;
    cell_var = document.getElementById(cell_name);
  
    if(tecla==48) cell_var.setAttribute('value', '' );
Pues bien, ahora llega lo extraño, aunque el value pasa a valer '' (comprobado viendo el DOM con firebug), el número 0 sigue estando en el input. Cuando hago un getAtribute de prueba, me saca que efectivamente está vacío, pero el p*** 0 sigue estando en el input.

Sin embargo, si modifico el código, y por ejemplo hago esto:

Código:
if(tecla==48) cell_var.setAttribute('value', '9' );
Entonces aparece el 9 y value pasa a valer 9.

¿Alguien puede iluminarme un poco?

Gracias a todos por vuestra ayuda.

Etiquetas: dom, establecer, input
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 09:20.