1

我有这个 HTML 代码:

<input type="checkbox" onclick="document.getElementById('directory_entry_name').disabled=this.checked;" name="directory_entry" id="directory_entry" />

<strong>Name: </strong><input type="text" name="directory_entry_name" id="directory_entry_name" disabled="disabled" />

文本框被禁用,我正在尝试这样做,所以当复选框被选中时,它将启用文本框,当再次取消选中时,它将禁用文本框。

如果我使用它会起作用:

<input type="checkbox" onclick="document.getElementById('directory_entry_name').disabled=false;" name="directory_entry" id="directory_entry" />

但是当它被取消选中时,它不会重新禁用文本框。

4

2 回答 2

4

这是相反的。在里面放一个!(不)。

document.getElementById('directory_entry_name').disabled=!this.checked;
于 2013-08-15T10:52:40.143 回答
0

浏览器检查是否有禁用属性,而不是值:禁用属性描述因此在禁用或启用输入的功能中,您应该添加和删除“禁用”属性。你可以用 jQuery .removeAttr() 和 .attr() 做到这一点

所以函数看起来像这样:

function SetInputActive(checkbox) {
if($(checkbox).is(':checked')) $('directory_entry_name').removeAttr("disabled");
else $('directory_entry_name').attr("disabled", "disabled");
}

于 2013-08-15T11:13:49.337 回答