如何使用复选框启用多个元素
How to enable multiple element with checkbox
我经历过一些通过javascript:启用/禁用多个html元素的代码
<script type="text/javascript">
function enableDisable(bEnable, text_no1, text_no2, opt_no1, opt_no2){
document.getElementById(text_no1).disabled = !bEnable
document.getElementById(text_no2).disabled = !bEnable
document.getElementById(opt_no1).disabled = !bEnable
document.getElementById(opt_no2).disabled = !bEnable
}
</script>
<label for="toggler"><input type="checkbox" id="toggler" autocomplete="off"
checked="false"
onclick="enableDisable(this.checked, 'text_no1','text_no2','opt_no1','opt_no2')";>
Toggler</label>
<br>
<input type="text" name="text_no1"><br>
<input type="text" name="text_no1"><br>
<select name="opt_no1">
<option>1</option>
</select>
<select name="opt_no2">
<option>1</option>
</select>
我编写了一个简单的脚本,说明您正在努力实现的目标。
(在Chrome 21、Firefox 14、Internet Explorer 9中测试)
JavaScript
function Switch() {
var checkbox = document.getElementById("Switch")
var val = checkbox.checked
document.getElementById("textbox").disabled = val
}
HTML
<input type="checkbox" id="Switch" onChange="Switch()" />Disable/Enable
<br />
<input type="text" id="textbox"/>
实例:http://jsfiddle.net/jHVNE/1/
我猜您的问题是"它不起作用",也就是说,元素没有被禁用。这在一定程度上是因为您使用getElementById
来访问没有ID属性的元素(尽管它很可能在IE中工作,因为它认为ID和名称是一样的)。
您可以将名称属性更改为ID属性(因为您没有使用不应该是问题的表单),也可以保留名称并将控件放入表单中,然后将其作为表单的命名属性进行访问。
编辑
你的代码中有几个错误和遗漏:
-
checked属性没有值,它是一个布尔属性,其存在表示"true",不存在表示"false",因此
…checked="false"…
为true并选中复选框 - 有两个名称为*text_no1的输入*
- 似乎选中复选框应该启用控件,标签应该表明这一点
- 使用表单使访问表单控件变得更容易
一些工作代码:
<script type="text/javascript">
function enableDisable(el) {
var f = el.form;
var bEnable = el.checked;
if (!f) return; // Stop if form not found
for (var i=1, iLen=arguments.length; i<iLen; i++) {
f[arguments[i]].disabled = !bEnable;
}
}
</script>
<form>
<label for="toggler">
<input type="checkbox" id="tggler" name="toggler" autocomplete="off" checked
onclick="enableDisable(this, 'text_no1','text_no2','opt_no1','opt_no2')";>
Controls enabled</label>
<br>
<input name="text_no1"><br>
<input name="text_no2"><br>
<select name="opt_no1">
<option>1
</select><br>
<select name="opt_no2">
<option>2
</select>
</form>
相关文章:
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- 命名一个在“”和“”之间切换元素的函数;启用”;以及“;被禁用”;州
- 启用具有不同元素的复选框
- 仅对特定的html元素启用幻灯片放映
- 如何使用复选框启用多个元素
- 在检查单选按钮检查状态后启用/禁用表单元素
- Fetch元素鼠标当前指向的Chrome开发工具已启用
- 如何在启用mCustomScrollbar时将元素拖动到外部
- 启用和禁用所有子元素
- Div元素并没有引导点击以启用拖动功能
- 仅为特定 html 元素启用刷新
- 使用 jquery/javascript 从 iFrame 启用/禁用父元素的 HTML 超链接(对于给定的结构)
- 在选择元素中选择第一个启用的选项
- 如何使用Javascript/jQuery隐藏/显示启用/禁用HTML元素
- jQuery 性能问题,通过为新元素启用拖放
- 复选框启用 Onload 以显示其他元素
- 仅对视口中的元素启用Ajax Rest调用
- 使用zurbfoundation基于表单的其他元素启用/禁用提交按钮
- 与disableSelection功能相反,后者用于为特定HTML元素启用文本选择
- jQuery -如何在元素启用时触发一个函数