¿Cómo agregar un atributo de "solo lectura" a una <entrada>?

Resuelto Qiao asked hace 15 años • 10 respuestas

¿ Cómo puedo agregar readonlya un específico <input>? .attr('readonly')No funciona.

Qiao avatar Aug 20 '09 21:08 Qiao
Aceptado

jQuery<1.9

$('#inputId').attr('readonly', true);

jQuery 1.9+

$('#inputId').prop('readonly', true);

Lea más sobre la diferencia entre prop y attr

Christian C. Salvadó avatar Aug 20 '2009 14:08 Christian C. Salvadó

Utilice $.prop()

$("#descrip").prop("readonly",true);

$("#descrip").prop("readonly",false);
Greg avatar Nov 30 '2011 05:11 Greg

Readonly es un atributo tal como se define en html, así que trátelo como tal.

Debe tener algo como readonly="readonly" en el objeto con el que está trabajando si desea que no sea editable. Y si desea que sea editable nuevamente, no tendrá algo como readonly='' (esto no es estándar si entendí correctamente). Realmente necesitas eliminar el atributo en su totalidad.

Como tal, al usar jquery, agregarlo y eliminarlo es lo que tiene sentido.

Establecer algo de solo lectura:

$("#someId").attr('readonly', 'readonly');

Eliminar solo lectura:

$("#someId").removeAttr('readonly');

Esta fue la única alternativa que realmente funcionó para mí. ¡Espero eso ayude!

 avatar Apr 09 '2012 17:04

.attr('readonly', 'readonly')debería funcionar. Solo .attr('readonly')devuelve el valor, no establece ninguno.

ceejayoz avatar Aug 20 '2009 14:08 ceejayoz

Puede desactivar el modo de solo lectura utilizando .removeAttr;

$('#descrip').removeAttr('readonly');
Steve avatar Mar 25 '2011 03:03 Steve