Problema al dar foco a input
Publicado por PasabaPorAqui (52 intervenciones) el 03/12/2008 10:28:36
Buenos días
Explico el problema, tengo una tabla con n filas y m columnas, en la que muestro los datos recogidos de una base de datos.
Esta tabla tambien es editable, celda a celda, para poder insertar registros en la base de datos. Para esto, cuando hago doble click en una celda inserto un input en la celda, el cual al terminar la edición insertará el valor en la celda y quitara el input. Si pulso escape se cancela la edición de la fila y se deshacen los cambios, y al pulsar enter saltamos a la edición de la siguiente celda.
Esto lo hago así porque al poder tener tablas muy grandes, si ponía un input en cada celda se hacia muy pesada la página (todo esto lo monto con javascript+ajax).
El problema lo tengo ahora con IE, al pulsar doble click en una celda y crear el input puedo escribir sin problemas, el problema es que al saltar a la siguiente celda, se crea el input y parece que coge el foco, pero no me deja escribir. Si reconoce el enter para saltar a la siguiente y el escape para cancelar, pero ninguna otra tecla. Pongo el código que crea el input.
var oTextEditCell=document.createElement("input");
oTextEditCell.setAttribute("id","editTextCell");
oTextEditCell.setAttribute("type","text")
oTextEditCell.style.width="100%";
oTextEditCell.style.height="100%";
oTextEditCell.style.height="2em";
oTextEditCell.onblur=objPGrid._cellComponent_OnBlur;
setClassToHTML(oTextEditCell,"editTextCell");
oDiv.appendChild(oTextEditCell);//oDiv es un div oculto donde se mantiene el input mientras no esta en ninguna celda
Y ahora la zona donde le doy el foco
oTextBoxEdit=document.getElementById('editTextCell');
oTextBoxEdit.value="";
oTextBoxEdit.value=oldValue;
celda.innerHTML="";
celda.appendChild(oTextBoxEdit);
oTextBoxEdit.focus();
oTextBoxEdit.select();
esto con el doble click funciona pero no al saltar con el enter.
¿Alguien sabe que puede ser?
Explico el problema, tengo una tabla con n filas y m columnas, en la que muestro los datos recogidos de una base de datos.
Esta tabla tambien es editable, celda a celda, para poder insertar registros en la base de datos. Para esto, cuando hago doble click en una celda inserto un input en la celda, el cual al terminar la edición insertará el valor en la celda y quitara el input. Si pulso escape se cancela la edición de la fila y se deshacen los cambios, y al pulsar enter saltamos a la edición de la siguiente celda.
Esto lo hago así porque al poder tener tablas muy grandes, si ponía un input en cada celda se hacia muy pesada la página (todo esto lo monto con javascript+ajax).
El problema lo tengo ahora con IE, al pulsar doble click en una celda y crear el input puedo escribir sin problemas, el problema es que al saltar a la siguiente celda, se crea el input y parece que coge el foco, pero no me deja escribir. Si reconoce el enter para saltar a la siguiente y el escape para cancelar, pero ninguna otra tecla. Pongo el código que crea el input.
var oTextEditCell=document.createElement("input");
oTextEditCell.setAttribute("id","editTextCell");
oTextEditCell.setAttribute("type","text")
oTextEditCell.style.width="100%";
oTextEditCell.style.height="100%";
oTextEditCell.style.height="2em";
oTextEditCell.onblur=objPGrid._cellComponent_OnBlur;
setClassToHTML(oTextEditCell,"editTextCell");
oDiv.appendChild(oTextEditCell);//oDiv es un div oculto donde se mantiene el input mientras no esta en ninguna celda
Y ahora la zona donde le doy el foco
oTextBoxEdit=document.getElementById('editTextCell');
oTextBoxEdit.value="";
oTextBoxEdit.value=oldValue;
celda.innerHTML="";
celda.appendChild(oTextBoxEdit);
oTextBoxEdit.focus();
oTextBoxEdit.select();
esto con el doble click funciona pero no al saltar con el enter.
¿Alguien sabe que puede ser?
Valora esta pregunta


0