71 votes

Détecte quand l'entrée a un attribut «en lecture seule»

Je veux lancer une alerte lorsqu'une entrée a un attribut "en lecture seule". J'ai essayé ceci:

   if($('input').attr('readonly') == 'readonly'){

    alert("foo");
  }
 

Je pense que «si» n'est même pas la meilleure façon de le faire.

163voto

Richard Neil Ilagan Points 9296

le moyen le plus rapide consiste à utiliser la fonction .is() jQuery.

 if ( $('input').is('[readonly]') ) { }
 

utiliser [readonly] comme sélecteur vérifie simplement si l'attribut est défini sur votre élément. si vous voulez vérifier une valeur, vous pouvez utiliser quelque chose comme ceci à la place:

 if ( $('input').is('[readonly="somevalue"]') ) { }
 

5voto

potench Points 2647

Vérifiez la valeur actuelle de votre attribut "en lecture seule", s'il est "faux" (une chaîne) ou vide (non défini ou ""), il n'est pas en lecture seule.

 $('input').each(function() {
    var readonly = $(this).attr("readonly");
    if(readonly && readonly.toLowerCase()!=='false') { // this is readonly
        alert('this is a read only field');
    }
});
 

3voto

Josiah Ruddell Points 14171

Vous pouvez simplement utiliser le sélecteur d'attributs, puis tester la longueur:

 $('input[readonly]').length == 0 // --> ok
$('input[readonly]').length > 0  // --> not ok
 

3voto

cachaito Points 91

Essayez un moyen simple:

 if($('input[readonly="readonly"]')){
   alert("foo");
}
 

1voto

Neal Points 68710

essaye ça:

 if($('input').attr('readonly') == undefined){
    alert("foo");
}
 

s'il n'est pas là ce sera undefined en js

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X