¿Cómo agregar un atributo de "solo lectura" a una <entrada>?
¿ Cómo puedo agregar readonly
a un específico <input>
? .attr('readonly')
No funciona.
jQuery<1.9
$('#inputId').attr('readonly', true);
jQuery 1.9+
$('#inputId').prop('readonly', true);
Lea más sobre la diferencia entre prop y attr
Utilice $.prop()
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
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!
.attr('readonly', 'readonly')
debería funcionar. Solo .attr('readonly')
devuelve el valor, no establece ninguno.
Puede desactivar el modo de solo lectura utilizando .removeAttr;
$('#descrip').removeAttr('readonly');