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:
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.cell_var = document.getElementById(cell_name); (initial[index]==0)? cell_var.setAttribute("value", ""): cell_var.setAttribute("value", initial[index]);
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:
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. var tecla = (document.all) ? e.keyCode : e.which; cell_var = document.getElementById(cell_name); if(tecla==48) cell_var.setAttribute('value', '' );
Sin embargo, si modifico el código, y por ejemplo hago esto:
Código:
Entonces aparece el 9 y value pasa a valer 9.if(tecla==48) cell_var.setAttribute('value', '9' );
¿Alguien puede iluminarme un poco?
Gracias a todos por vuestra ayuda.