La meilleure façon de désactiver le bouton dans le Bootstrap de Twitter [dupliquer]

Cette question a déjà une réponse ici:

Je suis confus quand il s'agit de la désactivation d'un <button>, <input> ou un <a> élément avec des classes: .btn ou .btn-primary, avec JavaScript/jQuery.

J'ai utilisé un extrait suivant pour faire que:

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

Donc, si je fournis simplement le $('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, de sorte que c'est la raison pour laquelle j'ai ajouté les paramètres attr et prop à l'élément.

Quelqu'un a-t-il expiré ce même problème? Est-ce la bonne façon de le faire-tout en utilisant le Bootstrap de Twitter?

241
demandé sur Gottlieb Notschnabel 2013-06-26 22:23:25

6 réponses

Vous avez juste besoin de la partie $('button').prop('disabled', true);, le bouton prendra automatiquement la classe désactivée.

303
répondu Samuel Robert 2013-06-26 18:29:14

Pour l'entrée et le bouton:

$('button').prop('disabled', true);

Pour l'ancre:

$('a').attr('disabled', true);

Vérifié dans firefox, chrome.

Voir http://jsfiddle.net/czL54/2/

107
répondu Jeroen K 2018-03-06 09:19:17

Construire la réponse de jeroenk , Voici le résumé:

$('button').addClass('disabled'); // Disables visually
$('button').prop('disabled', true); // Disables visually + functionally

$('input[type=button]').addClass('disabled'); // Disables visually
$('input[type=button]').prop('disabled', true); // Disables visually + functionally

$('a').addClass('disabled'); // Disables visually
$('a').prop('disabled', true); // Does nothing
$('a').attr('disabled', 'disabled'); // Disables visually

Voir violon

82
répondu Yarin 2017-05-23 11:55:10

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

<button class="btn btn-disabled" disabled>Content of Button</button>

À ce jour, Twitter Bootstrap n'a pas de méthode pour désactiver la fonctionnalité d'un bouton sans utiliser l'attribut disabled.

Néanmoins, ce serait une excellente fonctionnalité pour eux d'implémenter dans leur bibliothèque javascript.

32
répondu 1234567 2013-06-26 18:34:55
<div class="bs-example">
      <button class="btn btn-success btn-lg" type="button">Active</button>
      <button class="btn btn-success disabled" type="button">Disabled</button>
</div>
27
répondu Vicky 2017-09-26 08:46:10

Quel attribut est ajouté au bouton / ancre / lien pour le désactiver, bootstrap ajoute simplement du style et l'utilisateur pourra toujours cliquer dessus alors qu'il y a encore un événement onclick. Donc, ma solution simple est de vérifier si elle est désactivée et de supprimer / ajouter un événement onclick:

if (!('#button').hasAttr('disabled'))
 $('#button').attr('onclick', 'someFunction();');
else
 $('#button').removeattr('onclick');
-1
répondu Schone 2013-08-19 11:05:24