Comment puis-je ajouter readonly
à un spécifique <input>
? .attr('readonly')
ne marche pas.
javascript
jquery
Qiao
la source
la source
Réponses:
jQuery <1,9
jQuery 1.9+
En savoir plus sur la différence entre prop et attr
la source
Utilisez $ .prop ()
la source
$.prop()
: Prop définira l'attribut readonly sur une chaîne vide / vide, donc si vous avez un CSS qui utilise le sélecteur d'attribut pour[readonly="readonly"]
, vous devrez le changer[readonly]
(ou inclure les deux).Readonly est un attribut tel que défini en html, alors traitez-le comme tel.
Vous devez avoir quelque chose comme readonly = "readonly" dans l'objet avec lequel vous travaillez si vous voulez qu'il ne soit pas modifiable. Et si vous voulez qu'il soit à nouveau modifiable, vous n'aurez pas quelque chose comme readonly = '' (ce n'est pas standard si j'ai bien compris). Vous devez vraiment supprimer l'attribut dans son ensemble.
En tant que tel, tout en utilisant jquery, l'ajouter et le supprimer est ce qui a du sens.
Définissez quelque chose en lecture seule:
Supprimer en lecture seule:
C'était la seule alternative qui fonctionnait vraiment pour moi. J'espère que ça aide!
la source
.attr('readonly', 'readonly')
devrait faire l'affaire. Votre.attr('readonly')
ne renvoie que la valeur, il n'en définit pas une.la source
.attr
valeur ne doit être qu'une chaîne ou un nombre, pas un booléen, selon les documents jQuery: api.jquery.com/attr/#attr2 De plus, les "attributs booléens" HTML ne doivent être qu'une chaîne vide ou la valeur de l'attribut. Je pense que la solution est d'utiliser.prop()
pour éviter toute confusion.Je pense que "désactivé" exclut l'entrée de l'envoi sur le POST
la source
Vous pouvez désactiver la lecture seule en utilisant le .removeAttr;
la source
Pour activer la lecture seule:
Pour désactiver la lecture seule
la source
Utilisez la propriété setAttribute. Notez dans l'exemple que si sélectionnez 1, appliquez l'attribut en lecture seule sur la zone de texte, sinon supprimez l'attribut en lecture seule.
http://jsfiddle.net/baqxz7ym/2/
la source
Pour la version jQuery <1.9:
Pour la version jQuery> = 1.9:
la source