Comment ajouter un attribut" readonly " à un?

Comment puis-je ajouter readonly à un <input> ? .attr('readonly') ne fonctionne pas.

254
demandé sur Xufox 2009-08-20 18:49:34
la source

9 ответов

jQuery <1.9

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

jquery 1.9+

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

plus d'informations à propos de différence entre prop et attr

452
répondu CMS 2017-05-23 15:02:58
la source

Utiliser $.prop ()

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

$("#descrip").prop("readonly",false);
143
répondu Greg 2011-11-30 09:29:03
la source

Readonly est un attribut tel que défini dans html, donc le traiter comme un.

Vous devez avoir quelque chose comme readonly="readonly" dans l'objet que vous travaillez avec, si vous voulez ne pas être modifiable. Et si vous voulez qu'il soit modifiable à nouveau, 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, en utilisant jquery l'ajoutant et l'enlevant est ce qui fait sens.

mettre quelque chose en lecture seule:

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

supprimer sans objet en français:

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

C'était la seule alternative qui fonctionnait vraiment pour moi. Espérons que cela aide!

23
répondu 2012-04-09 21:31:02
la source

.attr('readonly', 'readonly') devrait faire l'affaire. Votre .attr('readonly') ne renvoie que la valeur, elle n'en fixe pas une.

20
répondu ceejayoz 2009-08-20 18:50:47
la source

je pense que "désactivé" exclut l'entrée d'être envoyé sur le POST

14
répondu 2009-09-11 20:40:12
la source

Vous pouvez désactiver la lecture seule à l'aide de la .removeAttr;

$('#descrip').removeAttr('readonly');
11
répondu Steve 2011-03-25 06:34:51
la source

Pour permettre readonly:

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

Pour désactiver readonly

$("#descrip").attr("readonly","");
5
répondu Pradeep 2011-02-07 11:08:09
la source

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>
3
répondu Diogo Rodrigues 2015-05-09 02:40:40
la source

pour la version jQuery < 1.9:

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

pour la version jQuery > = 1.9:

$('#inputId').prop('disabled', true);
-5
répondu Osman Adak 2017-07-23 05:06:30
la source

Autres questions sur javascript jquery