2011-04-01 31 views
10

¿Existe una forma en HTML, JavaScript o jQuery para hacer un entrada elemento de "sólo lectura", es decir¿navegador independiente de solo lectura?

  • el usuario puede leerlo
  • el usuario puede copiar su contenido en el portapapeles
  • el usuario no puede cambiarlo

que funcionará en todos los navegadores? Sé que hay un atributo de "solo lectura" pero no es compatible con todos los navegadores.

No estoy preguntando sobre los aspectos de seguridad, solo la experiencia del usuario.

+1

+1 solo para ver esos bonitos unicornios –

+0

@Slurpie Es compatible con todos los navegadores actuales. Lo que necesita es una solución para IE8 y abajo ... (digámoslo como es) –

+0

Quiero que funcione en todos los navegadores de uso común – JoelFan

Respuesta

2

Una forma es falso:

<p class="fake_input">The readonly Value</p> 
<input type="hidden" name="real_input" value="The readonly Value" /> 

Y si usted quisiera que mirar como una caja de entrada de personas con discapacidad, que podría diseñarlo y esas cosas.

Solo recuerde que las personas pueden cambiar las entradas ocultas de cualquier manera.

+0

oculto está oculto para los usuarios -> no se puede copiar – bensiu

+1

@bensiu Es por eso que tiene el párrafo que la gente puede ver. – sdleihssirhc

+0

OK, buena idea ... ahora cómo darle estilo, por favor? – JoelFan

6

si usando jQuery (y cuando se pone en la etiqueta) que entre navegadores:

$(...your input ...).attr('readonly','readonly'); 

edición: desde http://www.w3schools.com/tags/att_input_readonly.asp

El atributo de sólo lectura se apoya en todos los principales navegadores.

+0

¿Esto va a hacer mágicamente que se cruce de navegador? – Jon

+0

Entonces, ¿estás diciendo que jQuery hace más que solo establecer el atributo de "solo lectura"? ¿Realmente funciona en navegadores que no admiten el atributo "solo lectura" en HTML? – JoelFan

+0

¿Esto les permite a los usuarios copiar el texto también? – sdleihssirhc

1

Aunque el atributo readOnly no distingue entre mayúsculas y minúsculas en html, se debe escribir 'readOnly' en js. Funciona cuando se asigna directamente en todos los navegadores e incluye IE6, pero la forma en que lo asigne puede ser específica del navegador.

element.setAttribute ('readOnly', 'readOnly') no funciona en los navegadores más antiguos, pero element.readOnly = 'readOnly' (o cualquier valor de verdad) funciona x-browser.

+0

¿qué hay de configurarlo en jQuery o HTML? – JoelFan

+0

¡Gracias @kennebec! Me estaba metiendo en la cabeza. @JoelFan: sí, también es cierto en jQuery. –