我目前有4个文本框,1个复选框和一个下拉列表。我试图禁用textboexes和dropdownlist 正在检查复选框。我当前的代码不起作用,但我似乎无法在其中找到错误。我是使用JavaScript的新手。
function enableCheckBox(phyAddressCheckBox, tb1, tb2, tb3, file1, tb4)
{
if (document.getElementById(phyAddressCheckBox).checked)
{
document.getElementById('tb1').enabled = true;
document.getElementById(tb2).enabled = true;
document.getElementById(tb3).enabled = true;
document.getElementById(file1).enabled = true;
document.getElementById(tb4).enabled = true;
}
else
{
document.getElementById(tb1).enabled = false;
document.getElementById(tb2).enabled = false
document.getElementById(tb3).enabled = false;
document.getElementById(file1).enabled = false;
document.getElementById(tb4).enabled = false;
}
}
编辑 我在两个条件下都将所有属性设置为禁用,但没有任何作用
<script type="text/javascript" language="javascript">
function enableCheckBox(phyAddressCheckBox, tb1, tb2, tb3, file1, tb4)
{
if (document.getElementById(phyAddressCheckBox).checked)
{
document.getElementById('tb1').disabled = 'disabled';
document.getElementById(tb2).disabled = 'disabled';
document.getElementById(tb3).disabled = 'disabled';
document.getElementById(file1).disabled = 'disabled';
document.getElementById(tb4).disabled = 'disabled';
}
else
{
document.getElementById(tb1).disabled = 'disabled';
document.getElementById(tb2).disabled = 'disabled';
document.getElementById(tb3).disabled = 'disabled';
document.getElementById(file1).disabled = 'disabled';
document.getElementById(tb4).disabled = 'disabled';
}
}
</script>
我还在控制代码中添加了。
<asp:CheckBox ID="phyAddressCheckBox" runat="server" onclick="enableCheckBox(this.ID, physicalAddressTextbox, PhysicalAddress2Textbox, CityTextbox, physicalStateDropDownList,physicalZipTextbox)" style="text-align: left" />
答案 0 :(得分:1)
尝试:
document.getElementById(tb1).disabled='disabled';
答案 1 :(得分:1)
我不同意那些告诉你使用disabled='disabled'
的人在输入元素上的disabled属性采用布尔值,与HTML属性不同。 https://developer.mozilla.org/en/DOM/HTMLInputElement
从您传递给enableCheckBox
的变量的名称,看起来您传递的是DOM节点而不是ID。
另一个问题是你要传递this.ID
,你应该通过this.id
。更好的是,只需传递元素本身。请参阅此示例http://jsfiddle.net/mendesjuan/7ZEvk/2/
最后一个问题(在最初的示例中)是您尝试设置enabled
属性,但这不存在。您必须设置disabled
属性。
HTML
<input type='checkbox' id='cbox' onclick="enableCheckBox(this, 'text1', 'text2', 'text3', 'sel');"/>
<input id='text1' />
<input id='text2' />
<input id='text3' />
<select id='sel'>
<option>hello</option>
</select>
的JavaScript
// This is a lot like your function, but is less repetitive
function enableCheckBox(cbox /*, ... ids of fields to enable/disable */){
for (var i = 1; i < arguments.length; i++) {
document.getElementById(arguments[i]).disabled = cbox.checked;
}
}
答案 2 :(得分:0)
使用disabled属性:
document.getElementById(tb1).disabled = 'disabled';
答案 3 :(得分:0)
利用removeAttribute
和setAttribute
,如果disabled
为disabled
,则element
为enabled
。你可以像
function enableCheckBox(phyAddressCheckBox, tb1, tb2, tb3, file1, tb4){
if (document.getElementById(phyAddressCheckBox).checked){
document.getElementById(tb1).removeAttribute("disabled");
document.getElementById(tb2).removeAttribute("disabled");
document.getElementById(tb3).removeAttribute("disabled");
document.getElementById(file1).removeAttribute("disabled");
document.getElementById(tb4).removeAttribute("disabled");
}else{
document.getElementById(tb1).setAttribute("disabled", "disabled");
document.getElementById(tb2).setAttribute("disabled", "disabled");
document.getElementById(tb3).setAttribute("disabled", "disabled");
document.getElementById(file1).setAttribute("disabled", "disabled");
document.getElementById(tb4).setAttribute("disabled", "disabled");
}
}