Désactiver et activer un bouton d'entrée html


250

J'ai donc un bouton comme celui-ci:

<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>

Comment puis-je le désactiver et l'activer quand je le souhaite? J'ai essayé disabled="disable"mais le réactiver est un problème. J'ai essayé de le remettre à faux mais cela ne l'a pas permis.


Que voulez-vous dire le réactiver? Une fois que vous l'avez désactivé, vous ne pouvez pas le réactiver à partir de la même méthode, Me()j'espère que vous le savez (car il est désactivé)
— cjds

2
Ce que j'essaie de faire, c'est de désactiver et d'activer le bouton lorsque certains événements se produisent.
— k.ken

Réponses:


461

Utiliser Javascript

  • Désactiver un bouton html

    document.getElementById("Button").disabled = true;
  • Activer un bouton html

    document.getElementById("Button").disabled = false;
  • Démo ici


Utilisation de jQuery

Toutes les versions de jQuery antérieures à 1.6

  • Désactiver un bouton html

    $('#Button').attr('disabled','disabled');
  • Activer un bouton html

    $('#Button').removeAttr('disabled');
  • Démo ici

Toutes les versions de jQuery après 1.6

  • Désactiver un bouton html

    $('#Button').prop('disabled', true);
  • Activer un bouton html

    $('#Button').prop('disabled', false);
  • Démo ici

PS Mise à jour du code basé sur les changements de jquery 1.6.1 . Comme suggestion, utilisez toujours les derniers fichiers jquery et la prop()méthode.


Ai-je besoin des attributs pour que cela fonctionne? comme disables = "disable"
— k.ken

Non, à l'intérieur, $(document).readyvous pouvez appeler $('#Button').attr('disabled','disabled');. Cela désactivera le bouton lors du chargement de la page. Et lorsque certains événements se produisent, vous pouvez appeler $('#Button').removeAttr('disabled');pour le
— réactiver

comment ajouter un style gris s'il est désactivé?
— Lei Yang

1
@LeiYang vous pouvez ajouter des CSS comme celui-ci
— palasan le

Notez juste que le vrai et le faux sont des booléens, pas des chaînes, comme l'a écrit correctement palash
— Marco

24

Puisque vous le désactivez en premier lieu, la façon de l'activer consiste à définir sa disabledpropriété sur false.

Pour changer sa disabledpropriété en Javascript, vous utilisez ceci:

var btn = document.getElementById("Button");
btn.disabled = false;

Et évidemment, pour le désactiver à nouveau, vous utiliseriez à la trueplace.

Puisque vous avez également marqué la question avec jQuery, vous pouvez utiliser la .propméthode. Quelque chose comme:

var btn = $("#Button");
btn.prop("disabled", true);   // Or `false`

C'est dans les nouvelles versions de jQuery. La méthode la plus ancienne consiste à ajouter ou supprimer un attribut comme ceci:

var btn = $("#Button");
btn.attr("disabled", "disabled");
// or
btn.removeAttr("disabled");

La simple présence de la disabledpropriété désactive l'élément, vous ne pouvez donc pas définir sa valeur sur "false". Même les éléments suivants devraient désactiver l'élément

<input type="button" value="Submit" disabled="" />

Vous devez supprimer complètement l'attribut ou définir sa propriété.


Et si je veux que le bouton soit activé initialement puis désactivé plus tard; J'ai également essayé enable = "true". L'activation est-elle le mot clé approprié?
— k.ken

2
@ k.ken Non, le mot-clé est "désactivé". Si vous voulez que le bouton soit activé initialement, ne mettez pas du tout l'attribut disabled. Utilisez simplement <input type="button" value="Submit" />. Et lorsque vous changez le statut, utilisez .prop("disabled", true);(ou false)
— Ian

10

Vous pouvez le faire assez facilement avec juste du JavaScript, aucune bibliothèque requise.

Activer un bouton

document.getElementById("Button").disabled=false;

Désactiver un bouton

 document.getElementById("Button").disabled=true;

Aucune bibliothèque externe nécessaire.



3
$(".btncancel").button({ disabled: true });

Ici, «btncancel» est le nom de classe du bouton.


0

Sans jQuery, la désactivation de l'entrée sera plus simple

Button.disabled=1;


0
 <!--Button Disable Script-->
    <script type="text/javascript">
        function DisableButton() {
            document.getElementById("<%=btnSave.ClientID %>").disabled = true;
        }
        window.onbeforeunload = DisableButton;
    </script>
    <!--Button Disable Script-->

-2

Cela fonctionnera sûrement.

Pour désactiver un bouton

$('#btn_id').button('disable');

Pour activer un bouton

$('#btn_id').button('enable');

-6

Tenez-vous en php ...

Pourquoi ne pas laisser le bouton apparaître uniquement une fois que les critères ci-dessus sont remplis.

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.