¿Cómo puedo agregar readonly
a un específico <input>
? .attr('readonly')
No funciona.
javascript
jquery
Qiao
fuente
fuente
Respuestas:
jQuery <1.9
jQuery 1.9+
Lea más sobre la diferencia entre prop y attr
fuente
Use $ .prop ()
fuente
$.prop()
: Prop establecerá el atributo de solo lectura en una cadena en blanco / vacía, por lo que si tiene algún CSS que use el selector de atributos[readonly="readonly"]
, deberá cambiarlo a[readonly]
(o incluir ambos).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 lo entendí correctamente). Realmente necesita eliminar el atributo como un todo.
Como tal, mientras usa jquery, agregarlo y eliminarlo es lo que tiene sentido.
Establecer algo de solo lectura:
Eliminar solo lectura:
Esta fue la única alternativa que realmente funcionó para mí. ¡Espero eso ayude!
fuente
.attr('readonly', 'readonly')
debería hacer el truco. Tu.attr('readonly')
solo devuelve el valor, no establece uno.fuente
.attr
valor solo debe ser una cadena o un número, no un booleano, de acuerdo con los documentos de jQuery: api.jquery.com/attr/#attr2 Además, los "atributos booleanos" HTML solo deben ser una cadena vacía o el valor del atributo. Creo que la solución es usar.prop()
para evitar confusiones.Creo que "deshabilitado" excluye la entrada de ser enviada en la POST
fuente
Puede deshabilitar el readonly utilizando .removeAttr;
fuente
Para habilitar solo lectura:
Para deshabilitar solo lectura
fuente
Use la propiedad setAttribute. Tenga en cuenta, por ejemplo, que si selecciona 1, aplique el atributo de solo lectura en el cuadro de texto; de lo contrario, elimine el atributo de solo lectura.
http://jsfiddle.net/baqxz7ym/2/
fuente
Para la versión jQuery <1.9:
Para la versión jQuery> = 1.9:
fuente