我有一个复选框,可以通过下面的功能在选中时显示附加选项。麻烦的是,如果显示的复选框被选中,即使被隐藏,它们仍然被选中。我怎样才能最好地绑定取消勾选与他们被隐藏相同的功能?如何在输入元素隐藏时从复选框中删除检查?
这是许多类似隐藏取消隐藏分组之一。任何帮助表示赞赏!谢谢大家
请注意,我在一个系统中这样做,我不能添加或更改任何HTML ID或类,这就是为什么有一大堆选定的项目。
$("input[id='form_0009_fld_5-0']").click(function() {
if($(this).is(':checked')) {
$("input[name='form_0009_fld_6-0'],label[for='form_0009_fld_6-0'],input[name='form_0009_fld_6-1'],label[for='form_0009_fld_6-1'],input[name='form_0009_fld_6-2'],label[for='form_0009_fld_6-2'],input[name='form_0009_fld_6-3'],label[for='form_0009_fld_6-3'],input[name='form_0009_fld_6-4'],label[for='form_0009_fld_6-4'],input[name='form_0009_fld_6-5'],label[for='form_0009_fld_6-5'],input[name='form_0009_fld_6-6'],label[for='form_0009_fld_6-6']").closest('.formField').show();
} else {
$("input[name='form_0009_fld_6-0'],label[for='form_0009_fld_6-0'],input[name='form_0009_fld_6-1'],label[for='form_0009_fld_6-1'],input[name='form_0009_fld_6-2'],label[for='form_0009_fld_6-2'],input[name='form_0009_fld_6-3'],label[for='form_0009_fld_6-3'],input[name='form_0009_fld_6-4'],label[for='form_0009_fld_6-4'],input[name='form_0009_fld_6-5'],label[for='form_0009_fld_6-5'],input[name='form_0009_fld_6-6'],label[for='form_0009_fld_6-6']").closest('.formField').hide();
}
});
解决此问题的更好方法是在代码中包含“isHidden”检查,而不是修改是否检查某些内容?如果他们想让复选框再次可见,这将保持用户的选择。 – Codeman 2013-04-30 19:24:24
另外,你可以给我们一个JSFiddle展示这个问题吗? – Codeman 2013-04-30 19:24:39
你可以使用jquery修改任何DOM元素,所以你仍然可以添加类来输入你的目标,比使用无法读取的选择器更好 – 2013-04-30 19:26:57