<input id="test" type="text" value="text" />
alert($(':input:not([readonly])').length); // 1
$('#test').attr('readonly', 'readonly');
alert($(':input:not([readonly])').length); // 1
$('#test').removeAttr('readonly');
alert($(':input:not([readonly])').length); // 1
Suite à the question here, je ne peux pas la solution pour travailler car il semble jQuery ne définit pas l'attribut readonly correctement (ou au moins régulièrement).jQuery set puis lire sur attr en lecture seule zone de texte
note I obtenir les mêmes résultats avec $('#test').attr('readonly', true);
J'utilise Chrome, et l'attribut lecture seule rend comme readonly=""
. Il y a un autre article ici qui suggère que FireFox fait la même chose. Je ne suis pas vraiment dérangé à ce sujet dans la mesure où il empêche toujours la zone de texte d'être modifiable, mais je ne peux pas trouver un moyen de détecter l'attribut readonly.
J'aime normalement jQuery mais c'est un peu WTF.
Des idées?
La raison pour laquelle vous voyez ce comportement parce que le sélecteur '[readonly]' vérifie juste la * présence * de l'attribut, et 'true' ou' false', il est présent. –