Javascript 仅在启用复选框A时启用复选框B,反之亦然
我有两列带有可预测名称的复选框。当a列中的复选框未选中时,如何禁用B列中的复选框,并且仅在启用复选框a的第一个复选框时才启用它Javascript 仅在启用复选框A时启用复选框B,反之亦然,javascript,jsp,dom,jsp-tags,Javascript,Jsp,Dom,Jsp Tags,我有两列带有可预测名称的复选框。当a列中的复选框未选中时,如何禁用B列中的复选框,并且仅在启用复选框a的第一个复选框时才启用它 <dmf:checkbox name="someNameAColumnNumber" value="true" onclick = "enableColumnBCheckBox" runatclient="true" /> 是否有类似于on checkvalue=true的内容将等效复选框B设置为true,反之亦然 编辑复选框不在表单中
<dmf:checkbox
name="someNameAColumnNumber"
value="true"
onclick = "enableColumnBCheckBox" runatclient="true"
/>
是否有类似于on checkvalue=true的内容将等效复选框B设置为true,反之亦然
编辑复选框不在表单中。。它们位于嵌套表中。EDIT2应该只在IE6中工作(我知道……)不寻求跨浏览器兼容性您当前是否使用javascript框架?如果不是,我建议使用jQuery。这可以在纯javascript中完成,并且很容易获得几乎所有的交叉浏览器支持,但是对于真正的交叉浏览器支持,我绝对建议使用现有的框架。假设jQuery:
$('#checkboxA').click(function() {
$('#checkboxB')[0].disabled = !this.checked;
});
找到了一种可以作为onclick事件使用的方法
function toggleCheckBoxB(source) {
var cbAID= source.id;
var cbBID;
cbBID= cbAID.replace("A", "B");
if ( source.checked == 1 )
{
document.getElementById(cbBID).disabled = false;
}
else
{
document.getElementById(cbBID).disabled = true;
document.getElementById(cbBID).checked = 0;
}
}
这听起来像是一个UI,它将受益于拥有多组单选按钮(a/B/None),而不是拥有与普通复选框不太一样的复选框(需要JS来实现正常状态检查)。@David Dorward:不,这根本不是重点。如果B是a的一个子选项,我认为这有一个相当简单的应用程序。否则,Ayrad可能希望禁用以两种方式工作,而这一点根本没有被要求。相反,想象一个复选框写着“你可以给我发送电子邮件”,它启用复选框“每月一次”、“当我收到私人消息时”、“等等”是的David Hedlund,第二个复选框没有意义,除非第一个复选框是.or
$(“#checkboxB').attr('disabled',!this.checked”)代码>