明确设置disabled =" false"在HTML中不起作用

时间:2015-09-23 16:56:17

标签: html disabled-control

我想在html文件中明确设置一个启用的按钮。原因是我的代码稍后将按钮切换为禁用,如果代码崩溃,或者我可能会看到按钮被禁用。

我可以用

禁用按钮
$("#btn").attr("disabled","true")

然后是一个包含以下内容的html:

<button id="btn" disabled="false">I want to be enabled!</button>

仍然将按钮显示为已禁用。 检查员显示:

<button id="btn" disabled="">I want to be enabled!</button>

我知道我能做到

$("#btn").removeAttr("disabled") 

或类似,但对html中的许多元素执行此操作并不方便。

5 个答案:

答案 0 :(得分:31)

令人惊讶的是,HTML并没有对布尔属性使用布尔值。

在HTML中,布尔属性通过仅添加属性名称或(通常在XHTML中)使用属性名称作为其值来指定。

<input type="checkbox" disabled>                 <!-- HTML -->
<input type="checkbox" disabled />               <!-- Also HTML -->
<input type="checkbox" disabled="disabled" />    <!-- XHTML and HTML -->

HTML规范中记录了这一点:http://www.w3.org/TR/html5/infrastructure.html#boolean-attribute

  

许多属性是布尔属性。元素上存在布尔属性表示真值,缺少属性表示假值。

     

布尔属性不允许使用值“true”和“false”。要表示错误值,必须完全省略该属性。

答案 1 :(得分:3)

如果您使用的是 AngularJS ,请尝试使用ng-disabled。在这种情况下,您可以使用以下内容:

ng-disabled="true"
ng-disabled="false"
ng-disabled={{expression}}

它按预期工作....

答案 2 :(得分:3)

我知道这是一个古老的话题,但由于没有明确的答案,这有帮助吗?这确实回答了明确标记为已启用的问题。

<button enabled>My Text</button>
<!-- Which also works as: -->
<button enabled="enabled">My Text</button>

我也正在调查此问题,以便在验证发生时启用按钮。我希望这有助于某人。

答案 3 :(得分:3)

将来,可以帮助别人。

selectLanguage.onchange = function() {
    var value = selectLanguage.value;
    if (value != '') {
        submitLanguage.removeAttribute('disabled');
    } else {
        submitLanguage.setAttribute('disabled', 'disabled');
    }
    // submitLanguage.setAttribute('enabled', 'enabled');
}

答案 4 :(得分:-3)

Si esta usando Vuejs

:disabled="true" //desactiva el input
:disabled="false" //activa el input