Meilleur moyen de désactiver un bouton dans Twitter's Bootstrap

Je ne sais pas comment désactiver un élément " bouton ", " entrée " ou " a " avec les classes " btn " ou " btn-primary ", avec JavaScript/jQuery.

J'ai utilisé le snippet suivant pour le faire :

$('button').addClass('btn-disabled');
$('button').attr('disabled', 'disabled');
$('button').prop('disabled', true);

Donc, si je fournis simplement le paramètre $('button&#39 ;).addClass('btn-disabled&#39 ;); à mon élément, il apparaîtra comme désactivé, visuellement, mais la fonctionnalité restera la même et il sera néanmoins cliquable, c'est la raison pour laquelle j'ai ajouté les paramètres attr et prop à l'élément.

Quelqu'un a-t-il rencontré le même problème ? Est-ce que c'est la bonne façon de procéder, en utilisant Bootstrap de Twitter ?

Solution

Il suffit d'ajouter la partie $('button&#39 ;).prop('disabled&#39 ;, true);, le bouton prendra automatiquement la classe disabled.

Commentaires (7)

La façon la plus simple de le faire est d'utiliser l'attribut disabled, comme vous l'avez fait dans votre question initiale :

`

Commentaires (3)

Quel que soit l'attribut ajouté au bouton/ancre/lien pour le désactiver, bootstrap ne fait qu'y ajouter du style et l'utilisateur pourra toujours cliquer dessus tant que l'événement onclick sera présent. Ma solution simple consiste donc à vérifier s'il est désactivé et à supprimer/ajouté l'événement onclick :

if (!('#button').hasAttr('disabled'))
 $('#button').attr('onclick', 'someFunction();');
else
 $('#button').removeattr('onclick');
Commentaires (3)