Вимкнення та ввімкнення кнопки введення html


250

Тож у мене є така кнопка:

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

Як я можу відключити та ввімкнути це, коли захочу? Я спробував, disabled="disable"але ввімкнути це - проблема. Я спробував повернути його на значення false, але це не ввімкнуло.


Що означає включити його назад? Якщо ви відключите його, ви не зможете повторно ввімкнути його тим самим методом, Me()я сподіваюся, що ви це знаєте (тому що це вимкнено)
cjds

2
Я те, що я намагаюся зробити, це відключити та включити кнопку, коли трапляються певні події.
k.ken

Відповіді:


463

Використання Javascript

  • Вимкнення кнопки html

    document.getElementById("Button").disabled = true;
  • Увімкнення кнопки html

    document.getElementById("Button").disabled = false;
  • Демо тут


Використання jQuery

Всі версії jQuery до 1.6

  • Вимкнення кнопки html

    $('#Button').attr('disabled','disabled');
  • Увімкнення кнопки html

    $('#Button').removeAttr('disabled');
  • Демо тут

Всі версії jQuery після 1.6

  • Вимкнення кнопки html

    $('#Button').prop('disabled', true);
  • Увімкнення кнопки html

    $('#Button').prop('disabled', false);
  • Демо тут

PS Оновлено код на основі змін jquery 1.6.1 . В якості пропозиції завжди використовуйте найновіші файли jquery та prop()метод.


Чи потрібні мені атрибути для цього? як
disables

Ні, всередину $(document).readyможна зателефонувати $('#Button').attr('disabled','disabled');. Це відключить кнопку при завантаженні сторінки. І коли відбудуться певні події, ви можете зателефонувати, $('#Button').removeAttr('disabled');щоб увімкнути це знову ...
palaѕn

як додати сірий стиль, якщо його відключено?
Лей Ян

1
@LeiYang Ви можете додати такий
файл

Просто зауважте, що true та false булеві, а не рядки, як правильно написав palash
Marco

24

Оскільки ви відключите його в першу чергу, спосіб включити його - встановити його disabledвластивість як false.

Щоб змінити його disabledвластивість у Javascript, ви використовуєте це:

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

І очевидно, щоб знову відключити його, ви скористалися б trueзамість цього.

Оскільки ви також позначили це питання jQuery, ви можете використовувати .propметод. Щось на зразок:

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

Це є в нових версіях jQuery. Старіший спосіб зробити це - додати або видалити такий атрибут на зразок:

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

Сама наявність disabledвластивості вимикає елемент, тому ви не можете встановити його значення як "хибне". Навіть наступне повинно вимкнути елемент

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

Потрібно або повністю видалити атрибут, або встановити його властивість.


що робити, якщо я хочу, щоб кнопка була включена спочатку, а потім відключена пізніше; Я також спробував enable = "true". Чи належне ключове слово enable ??
k.ken

2
@ k.ken Ні, ключове слово "вимкнено". Якщо ви хочете, щоб кнопка була ввімкнена спочатку, не ставте атрибут disabledвзагалі. Просто використовуйте <input type="button" value="Submit" />. А при зміні статусу використовуйте .prop("disabled", true);(або false)
Ян

10

Ви можете це зробити досить просто за допомогою прямого JavaScript, не потрібні бібліотеки.

Увімкнути кнопку

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

Вимкнути кнопку

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

Не потрібні зовнішні бібліотеки.


4

атрибут disabled має лише один параметр. якщо ви хочете повторно використовувати його, вам доведеться видалити всю річ, а не просто змінювати значення.



0

Без jQuery відключити введення буде простіше

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

Хоча це питання не пов'язане безпосередньо з цим питанням, якщо ви перейдете на це питання, щоб відключити щось, крім типових вхідних елементів button, input, textarea, синтаксис не працюватиме.

Щоб відключити div або span, використовуйте setAttribute

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

PS: Маю, зателефонуйте до цього, лише якщо ви маєте намір відключити. Помилка в хромованій версії 83 призводить до того, що це завжди вимикається, навіть коли другий параметр хибний.


-2

Це неодмінно спрацює.

Щоб вимкнути кнопку

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

Щоб увімкнути кнопку

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

-6

Дотримуйтесь php ...

Чому б не дозволити появі кнопки лише після того, як будуть виконані вищевказані критерії.

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.