2012-01-23 12 views
5

Tengo un problema por el que, periódicamente, no puedo escribir en ningún input/textareas en Internet Explorer. Estoy trabajando principalmente con IE9 en este momento.¿Por qué a veces no puedo escribir en mi <input> en IE?

Cuando hago clic en una entrada, se ejecuta el controlador de clics de JS (que vacía el texto del marcador de posición) y se aplica el css activo. Sin embargo, el cursor no aparece y no puedo escribir. Si selecciono un campo de entrada y empiezo a escribir, todo vuelve a funcionar.

Tengo un poco de JS ejecutándose, pero no hay errores en ejecución. Sospeché que TinyMCE tuvo algo que ver con eso, pero también sucede cuando no hay editores en la página, así que tampoco parece ser eso. Si no tiene una respuesta, me encantaría tener una idea de lo que podría estar sucediendo aquí que podría investigar más, ya que estoy un poco perplejo.

+0

¿Es que la entrada/textarea no tiene el foco? –

+3

Proporcione un ejemplo mínimo que muestre este comportamiento; deberías probar http://jsfiddle.net – canon

Respuesta

6

Finalmente resolví esto. Fue un problema extraño y desagradable con TinyMCE, donde TinyMCE estaba siendo destruido mientras el cursor estaba dentro de la ventana principal. La solución era enfocarse explícitamente antes de que se destruya.

+0

¿Puedes publicar detalles de cómo eliminaste el foco, específicamente? – ndtreviv

+0

No he podido encontrar, pero estaba en la línea de '$ ('html'). Focus()', si no recuerdo mal. También puedes enfocarte en otra entrada. Mientras no esté en el iframe de TinyMCE (que se numera), debería estar bien. –

+0

Gracias @DanG, acabas de salvar mi día. – jiantongc

0

Tuve un problema similar una vez con I.E. donde estaba usando .split para asegurarme de que el cuadro de entrada no estaba vacío cuando obtuve el foco. Sin embargo, I.E. no admitía .split y bloquearía mi js. Tuve que escribir el mío y terminó funcionando. No estoy seguro si esto de alguna manera se aplica a lo que está haciendo, pero pensé que simplemente lo lanzaría allí.

-1

Dado que tiene muchos javascript en la página, una razón probable sería un conflicto de nomenclatura o incluso más probablemente una falla js. Recorre tu código por enésima vez.

Cuestiones relacionadas