7
votes

jquery: removeattr ("désactivé") ne fonctionne pas sur Firefox

J'ai un code qui ressemble à ce qui ressemble à la suite d'une réponse XHR:

jQuery(':text:not(:hidden)').removeAttr("disabled");


2 commentaires

Vous devriez vraiment utiliser jQuery ('entrée: texte: non (: masqué)'), il est beaucoup plus rapide en fonction des docs JQuery. Quant à votre problème, je ne vois pas pourquoi cela ne devrait pas fonctionner en principe, mais maintenant, je n'ai pas FF 3.6.1 pour l'essayer.


Pour changer l'état dynamique, PROP () doit être utilisé à la place de ATTR () / RemoVeAreTR (), voir Ma réponse sur les boutons désactivés .


3 Réponses :


-2
votes

Au lieu d'essayer:

jQuery(':text:not(:hidden)').attr("disabled",'');


2 commentaires

Il ne semble pas être la solution la plus propre, car dans HTML5, l'attribut Désactivé (et autre) peut avoir une valeur (même une chaîne vide) et toujours être valide ( , sera désactivé)


Cela vient de finir par la désactivation de tous mes contrôles de saisie de texte.



0
votes

Avez-vous essayé quelque chose comme: xxx


0 commentaires

14
votes

ayez un aller à l'aide de cela à la place:

jQuery('input:text:visible').each(function(){
    this.disabled = false;
});


3 commentaires

Vas-y toi. Pas que je n'ai pas ce problème, mais JQuery a aidé beaucoup de gens à oublier comment écrire JavaScript natif.


Enfin, la santé mentale. JQuery a beaucoup à répondre, notamment la confusion proche universelle parmi les utilisateurs de JQuery sur la différence entre les attributs et les propriétés.


Eu ce problème dans IE (.RemoVeattr ("désactivé"); a travaillé sur FF). Ce 'this.disableabled' a bien fonctionné pour les deux navigateurs :-)