我有以下
<form class="form-inline" role="form">
<div class="col-xs-3">
<div class="pic-container">
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check11' value="">ciao</span><br>
</label>
</div>
</div>
<div class="col-xs-3">
<div class="pic-container">
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check21' value="">hola</span><br>
</label>
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check21' value="">hola</span><br>
</label>
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check21' value="">hola</span><br>
</label>
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check21' value="">hola</span><br>
</label>
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check21' value="">hola</span><br>
</label>
<label>
<span><input type="checkbox" name="discounting" onchange='handleChange(this);' id='check21' value="">hola</span><br>
</label>
</div>
</div>
</form>
我想通过单击第一个复选框,自动检查ID为“check21”的第二个div中的所有复选框。
<script>
function handleChange(cb) {
if(cb.checked == true) {
document.getElementById("check21").checked = true;
alert('eyaicecold');
} else {
alert('Message 2');
var x = document.getElementById("check21").disabled= false;
}
}
</script>
我已经使用了下面的脚本,但只适用于第一个脚本。我想使用id,因为名称和值将用于通过表单发送sql请求。
3条答案
按热度按时间xn1cxnb41#
正如在注解中指出的,ID必须是唯一的,所以如果愿意,可以将它们改为类。
此外,请移除这些内嵌事件行程常式。
b0zn9rqh2#
如前所述,网页上的每个元素都应该有一个唯一的ID。
但是,仍然可以使用 querySelectorAll 执行此操作,如下所示:
Here is the JSFiddle demo
bgibtngc3#
ID是唯一的,它允许你用
getElementById
函数得到一个元素,而其他getElementsByXXX
函数返回一个元素列表(因此getElements中的s)。当你检索POST数据(通过PHP或其他服务器语言)时,你需要检查变量name属性是否被设置。如果是,那么复选框被选中了。像你这样有多个同名的复选框是行不通的。This other SO answer解释了如何很好地使用复选框中的POST数据。
如果您选择使用
name="something[]"
表示法,则可以使用以下命令选中第二个div的所有复选框:您也可以使用类,但我认为这只会使代码膨胀,而您已经需要为窗体使用名称。