Tengo un error extraño, bueno, MSIE sí.Error de la caja de entrada de solo lectura en Internet Explorer
parece que está fallando en todas las versiones de MSIE: (!) 6, 7, 8 y 9
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" ><head><title>test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
var test=jQuery('#in');
test.focus(function(){
if(test.val()=='empty')test.val('');
test.attr('readonly',false);
});
test.blur(function(){
if(test.val()=='')test.val('empty');
test.attr('readonly',true);
});
});
</script>
</head><body>
<input type="text" value="empty" readonly="readonly" id="in"/>
</body></html>
Voy a explicar cómo funciona este sistema y lo que va mal.
Cuando el usuario hace clic (enfoca) en el cuadro de entrada, el cuadro de entrada debe ser editable (es decir, perder indicador de solo lectura). Luego, cuando deja el cuadro de entrada (es decir, evento de desenfoque), se realiza algún procesamiento (no se muestra en el código) y el cuadro de entrada se hace de forma sencilla.
Esto funciona como un encanto en la mayoría de los navegadores (Firefox, Opera, basado en webkit), pero no en ninguna versión de IE (incluyendo 9 beta). El problema es que en IE, el usuario tiene que hacer clic en el cuadro de entrada dos veces.
En este punto, puede preguntar si la casilla de entrada se ha dejado solo de leer la primera vez? No. Lo probé, javascript informa que es editable.
Solución fácil, solo active un evento de clic en el cuadro de entrada (para simular el comportamiento del doble clic del usuario), ¿no? No, .click()
y .focus()
ambos fallaron. No tengo idea por qué.
Editar: Sepa que el cursor aparece en el cuadro de texto, al menos visiblemente.
Importante: Personas, por favor, ¡al menos intente con el código antes de responder!
¿Por qué lo hacen sólo lectura en absoluto, si un clic hace que sea editable? –
Eso no es una solución, o una respuesta constructiva, en eso. – Christian
Es por eso que fue un comentario y no una respuesta. – meagar