Html giriş düğmesini devre dışı bırakma ve etkinleştirme


250

Yani böyle bir düğme var:

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

İstediğimde nasıl devre dışı bırakabilir ve etkinleştirebilirim? Denedim disabled="disable"ama geri etkinleştirmek bir sorundur. Yanlış olarak ayarlamayı denedim ama bu etkinleştirmedi.


Ne demek geri etkinleştirmek? Bir kez devre dışı Me()bıraktığınızda aynı yöntemle yeniden etkinleştiremezsiniz Umarım biliyorsunuz (çünkü bu devre dışıdır)
cjds

2
Yapmaya çalıştığım şey, belirli olaylar gerçekleştiğinde düğmeyi devre dışı bırakmak ve etkinleştirmektir.
k.ken

Yanıtlar:


463

Javascript Kullanımı

  • Html düğmesini devre dışı bırakma

    document.getElementById("Button").disabled = true;
  • HTML düğmesini etkinleştirme

    document.getElementById("Button").disabled = false;
  • Burada Demo


JQuery kullanma

1.6'dan önceki tüm jQuery sürümleri

  • Html düğmesini devre dışı bırakma

    $('#Button').attr('disabled','disabled');
  • HTML düğmesini etkinleştirme

    $('#Button').removeAttr('disabled');
  • Burada Demo

1.6'dan sonra tüm jQuery sürümleri

  • Html düğmesini devre dışı bırakma

    $('#Button').prop('disabled', true);
  • HTML düğmesini etkinleştirme

    $('#Button').prop('disabled', false);
  • Burada Demo

PS jquery 1.6.1 değişikliklerine göre kodu güncellendi . Öneri olarak, her zaman en son jquery dosyalarını ve prop()yöntemi kullanın.


Bunun çalışması için oradaki özelliklere ihtiyacım var mı? like disables = "devre dışı"
k.ken

Hayır, içinde $(document).readyarayabilirsin $('#Button').attr('disabled','disabled');. Bu, sayfa yüklenirken düğmeyi devre dışı bırakır. Ve belirli olaylar gerçekleştiğinde, $('#Button').removeAttr('disabled');tekrar etkinleştirmek için arayabilirsiniz ...
palaѕн

devre dışı bırakılırsa gri stil nasıl eklenir?
Lei Yang

1
Eğer gibi bazı css ekleyebilir @LeiYang bu
palaѕн

Palash'ın doğru yazdığı gibi, doğru ve yanlışın boole olduğunu, dizeler değil, farkına varın
Marco

24

İlk etapta devre dışı bıraktığınız için, etkinleştirmenin yolu disabledözelliğini olarak ayarlamaktır false.

disabledJavascript'teki özelliğini değiştirmek için şunu kullanın:

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

Ve açıkça devre dışı bırakmak için, truebunun yerine kullanabilirsiniz .

Soruyu jQuery ile de etiketlediğiniz için, .propyöntemi kullanabilirsiniz . Gibi bir şey:

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

Bu, jQuery'nin daha yeni sürümlerinde bulunmaktadır. Bunu yapmanın eski yolu şöyle bir öznitelik eklemek veya kaldırmaktır:

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

Özelliğin varlığı disabledöğeyi devre dışı bırakır, bu nedenle değerini "false" olarak ayarlayamazsınız. Aşağıdakiler bile öğeyi devre dışı bırakmalıdır

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

Özniteliği tamamen kaldırmanız veya özelliğini ayarlamanız gerekir.


düğmenin önce etkinleştirilmesini ve daha sonra devre dışı bırakılmasını istersem ne olur? Ben de enable = "true" denedim. Enable doğru anahtar kelime mi ??
k.ken

2
@ k.ken Hayır, anahtar kelime "devre dışı". Düğmenin başlangıçta etkinleştirilmesini istiyorsanız, özelliği hiç girmeyin disabled. Sadece kullan <input type="button" value="Submit" />. Ve durumu değiştirirken, .prop("disabled", true);(veya false) kullanın
Ian

10

Bunu sadece düz JavaScript ile kolayca yapabilirsiniz, kütüphaneye gerek yoktur.

Bir düğmeyi etkinleştir

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

Bir düğmeyi devre dışı bırak

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

Harici kütüphane gerekmez.


4

devre dışı bırak özniteliğinin yalnızca bir parametresi vardır. yeniden etkinleştirmek istiyorsanız, sadece değeri değiştirmek değil, her şeyi kaldırmanız gerekir.


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

Burada 'btncancel' düğmenin sınıf adıdır.


0

JQuery devre dışı giriş daha basit olacak

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-->

0

Doğrudan soruyla ilgili olmasa da, tipik giriş öğelerinden başka bir şeyi devre dışı bırakmak isteyen bu soruya atlarsanız button, input, textarea, sözdizimi çalışmaz.

Bir div veya span değerini devre dışı bırakmak için setAttribute kullanın

document.querySelector('#somedivorspan').setAttribute('disabled', true);

Not: Yakaladım, sadece devre dışı bırakmak istiyorsanız arayın. Chrome Sürüm 83'teki bir hata, ikinci parametre yanlış olsa bile her zaman devre dışı kalmasına neden olur.


-2

Bu kesinlikle işe yarayacaktır.

Bir düğmeyi devre dışı bırakmak için

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

Bir düğmeyi etkinleştirmek için

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

-6

Php için sopa ...

Neden sadece yukarıdaki kriterler karşılandığında düğmenin görünmesine izin vermiyorsunuz.

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.