Comment ajouter un attribut" readonly " à un?
Comment puis-je ajouter readonly
spécifique de la <input>
? .attr('readonly')
ne fonctionne pas.
9 réponses
JQuery
$('#inputId').attr('readonly', true);
Jquery 1.9 +
$('#inputId').prop('readonly', true);
En savoir plus sur différence entre prop et attr
Readonly est un attribut tel que défini en html, alors traitez-le comme un.
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.
Ensemble quelque chose en lecture seule:
$("#someId").attr('readonly', 'readonly');
Supprimer en lecture seule:
$("#someId").removeAttr('readonly');
C'était la seule alternative qui a vraiment fonctionné pour moi. Espérons que cela aide!
.attr('readonly', 'readonly')
devrait faire l'affaire. Votre .attr('readonly')
ne renvoie que la valeur, il n'en définit pas une.
Vous pouvez désactiver le readonly en utilisant le .removeAttr;
$('#descrip').removeAttr('readonly');
Pour activer readonly:
$("#descrip").attr("readonly","true");
Pour désactiver readonly
$("#descrip").attr("readonly","");
Utilisez la propriété setAttribute. Notez dans l'exemple que si select 1 applique l'attribut readonly sur textbox, sinon supprimez l'attribut readonly.
Http://jsfiddle.net/baqxz7ym/2/
document.getElementById("box1").onchange = function(){
if(document.getElementById("box1").value == 1) {
document.getElementById("codigo").setAttribute("readonly", true);
} else {
document.getElementById("codigo").removeAttribute("readonly");
}
};
<input type="text" name="codigo" id="codigo"/>
<select id="box1">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>
Pour la version jQuery
$('#inputId').attr('disabled', true);
Pour la version jQuery > = 1.9:
$('#inputId').prop('disabled', true);