Как включить отключенный флажок динамически?
Пожалуйста, смотрите здесь:
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
является логическим атрибутом.
См. здесь.
Ответы
Ответ 1
Просто сделай
function enable() {
document.getElementById("check").disabled= false;
}
function disable() {
document.getElementById("check").disabled= true;
}
При этом вы устанавливаете свойство элемента DOM, а установка атрибута атрибута disabled
отключит этот флажок, поэтому даже если вы выполните x.setAttribute("disabled", "false");
, он все равно будет присутствовать в атрибуте element.
Демо
или вы просто выполните:
function disable() {
document.getElementById("check").setAttribute('disabled', 'disabled');
}
function enable() {
document.getElementById("check").removeAttribute('disabled');
}
disabled
как атрибут и disabled
как свойство разные.
Ответ 2
Задайте свойство disabled
, а не атрибут (fiddle).
function enable() {
document.getElementById("check").disabled = false;
}
function disable() {
document.getElementById("check").disabled = true;
}
Элемент управления будет отключен, если присутствует атрибут disabled
- независимо от его значения (fiddle). Установка свойства disabled
на false
приведет к удалению атрибута disabled
.
Ответ 3
Он работает,
x.removeAttribute("disabled");
http://jsfiddle.net/maximos/89wxX/1/