322

所以我有一个这样的按钮:

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

如何在需要时禁用和启用它?我已经尝试过disabled="disable",但重新启用它是一个问题。我尝试将其设置回 false 但这并没有启用它。

4

12 回答 12

596

使用 Javascript

  • 禁用 html 按钮

    document.getElementById("Button").disabled = true;
    
  • 启用 html 按钮

    document.getElementById("Button").disabled = false;
    
  • 在这里演示


使用 jQuery

1.6 之前的所有 jQuery 版本

  • 禁用 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()方法。

于 2012-12-12T02:16:20.727 回答
31

由于您首先禁用它,因此启用它的方法是将其disabled属性设置为false.

要在 Javascript 中更改其disabled属性,请使用以下命令:

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属性的存在会禁用该元素,因此您不能将其值设置为“false”。即使以下内容也应该禁用该元素

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

您需要完全删除该属性设置其属性。

于 2012-12-12T01:58:26.117 回答
12

只需直接使用 JavaScript,您就可以相当轻松地做到这一点,不需要任何库。

启用按钮

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

禁用按钮

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

不需要外部库。

于 2015-04-17T21:42:55.873 回答
4

disable 属性只有一个参数。如果要重新启用它,则必须删除整个内容,而不仅仅是更改值。

于 2012-12-12T01:59:12.543 回答
4
$(".btncancel").button({ disabled: true });

这里的 'btncancel' 是按钮的类名。

于 2017-05-22T08:32:24.013 回答
3

使用 jQuery,您可以在一行中完成

//Enable
$('#Button').prop('disabled', false)

//Disable
$('#Button').prop('disabled', true)
于 2021-08-25T05:58:05.480 回答
0

没有 jQuery 禁用输入会更简单

Button.disabled=1;

function dis() {
  Button.disabled= !Button.disabled;
}
<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>

<button onclick="dis()">Toggle disable</button>

于 2019-04-19T10:35:25.943 回答
0
 <!--Button Disable Script-->
    <script type="text/javascript">
        function DisableButton() {
            document.getElementById("<%=btnSave.ClientID %>").disabled = true;
        }
        window.onbeforeunload = DisableButton;
    </script>
    <!--Button Disable Script-->
于 2019-09-14T05:42:30.120 回答
0

虽然与问题没有直接关系,但如果您跳到这个问题上希望禁用除典型输入元素以外的其他内容button, input, textarea,则语法将不起作用。

要禁用 div 或 span,请使用setAttribute

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

PS:知道了,只有在你打算禁用时才调用它。chrome 版本 83 中的一个错误导致即使第二个参数为 false 也始终禁用此功能。

于 2020-06-26T10:23:22.650 回答
0

使用 JavaScript 禁用/启用 html 输入按钮:

(和 React 与 refs。如果不使用 React,请将“elementRef.current”替换为元素选择)

 elementRef.current.setAttribute('disabled', 'disabled');

使能够:

 elementRef.current.removeAttribute('disabled');
于 2020-09-18T14:49:38.460 回答
-1

这肯定会奏效。

禁用按钮

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

启用按钮

$('#btn_id').button('enable');
于 2017-08-02T10:23:24.157 回答
-7

坚持php...

一旦满足上述条件,为什么不只允许按钮出现。

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
于 2018-03-31T14:39:02.263 回答