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' ;).addClass('btn-disabled' ;);
à 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 ?
La façon la plus simple de le faire est d'utiliser l'attribut disabled
, comme vous l'avez fait dans votre question initiale :
`<button class="btn btn-disabled" ; disabled>Contenu du bouton``.
À l'heure actuelle, Twitter Bootstrap ne dispose pas d'une méthode permettant de désactiver la fonctionnalité d'un bouton sans utiliser l'attribut disabled
.
Néanmoins, il s'agirait d'une excellente fonctionnalité à implémenter dans leur bibliothèque javascript.
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');