【发布时间】:2017-12-22 06:36:54
【问题描述】:
我想要一个可以启用(选中时)或禁用(未选中时)一组输入表单元素的复选框。我已经设法只用一个元素来做到这一点,但我正在努力用几个元素来做到这一点。这是我的代码:
Javascript:
function myFunction() {
var elements = document.getElementsByClassName("child1");
var el = document.getElementById("myCheck");
for(var i=0; i<elements.length; i++) {
if(el.checked) {
elements[i].removeAttribute("disabled");
} else {
elements[i].setAttribute("disabled","disabled");
}
}
}
HTML
<input type="checkbox" id="myCheck" onChange="myFunction()">Click the button to disable the form input elements<br>
<input type="radio" class="child1" name="group1" disabled="disabled">
<input type="radio" class="child1" name="group1" disabled="disabled">
<input type="radio" class="child1" name="group1" disabled="disabled">
<br>
<input type="radio" class="child1" name="group2" disabled="disabled">
<input type="radio" class="child1" name="group2" disabled="disabled">
<input type="radio" class="child1" name="group2" disabled="disabled">
<br>
<input type="text" class="child1" disabled="disabled">
(我使用 getElementsByClassName ,因为我知道您只能通过 html 页面拥有一个 ID(即 getElementById 不起作用)。
JSFIDDLEhttps://jsfiddle.net/w2992L1y/
【问题讨论】:
-
我不懂纯js,所以我不能给你答案,但我可以给你基本的评论——你想做的是,在复选框上添加一个eventListener,单击时,对相互类名执行 foreach 语句并添加 disabled 属性。
-
有什么问题?
-
另外,不要使用内联 js - 这是一种不好的做法,会导致代码难以维护
-
此代码无效:link
标签: javascript html forms checkbox