请看这里: http://jsfiddle.net/nShQs/
按禁用按钮,然后按启用按钮。该复选框未启用。
HTML:
<input id="check" type="checkbox"/>
<input id="btn1" type="button" value="enable" />
<input id="btn2" type="button" value="disable" />
JS:
function enable() {
var x = document.getElementById("check");
alert(x.getAttribute("disabled"));
x.setAttribute("disabled", "false");
alert(x.getAttribute("disabled"));
}
function disable() {
var x = document.getElementById("check");
alert(x.getAttribute("disabled"));
x.setAttribute("disabled", "true");
alert(x.getAttribute("disabled"));
}
document.getElementById("btn1").addEventListener("click", enable);
document.getElementById("btn2").addEventListener("click", disable);
答案
正如答案所说,这是因为disabled
属性是一个布尔属性。
请参阅here。
答案 0 :(得分:29)
只做
function enable() {
document.getElementById("check").disabled= false;
}
function disable() {
document.getElementById("check").disabled= true;
}
使用此设置您正在设置DOM元素的属性,而设置属性disabled
的属性将禁用复选框,因此即使您执行x.setAttribute("disabled", "false");
,它仍然会在元素上作为属性。
<强> Demo 强>
或者你会这样做:
function disable() {
document.getElementById("check").setAttribute('disabled', 'disabled');
}
function enable() {
document.getElementById("check").removeAttribute('disabled');
}
disabled
作为属性,disabled
作为属性不同。
答案 1 :(得分:7)
设置disabled
属性而不是属性(fiddle)。
function enable() {
document.getElementById("check").disabled = false;
}
function disable() {
document.getElementById("check").disabled = true;
}
如果disabled
属性 ,则控件将保持禁用状态 - 无论其值是多少(fiddle)。将disabled
属性设置为false
将删除disabled
属性。
答案 2 :(得分:4)