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.