0

我有一个复选框,通过以下功能在选中时显示其他选项。问题是,如果显示的复选框被选中,即使隐藏后它们仍保持选中状态。我怎样才能最好地将取消选中的复选框与隐藏的功能相同?

这是许多类似的隐藏-取消隐藏分组之一。任何帮助表示赞赏!谢谢大家

请注意,我是在一个无法添加或更改任何 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();
        }
});
4

2 回答 2

1

属性选择器可以匹配“starts with”、“ends with”和很多其他的选项,所以不需要像这样输入一堆类似的选择器吗?

要将复选框设置为“未选中”,您将使用prop('checked', false)如果最初切换的复选框未选中等,并且使用change事件可能比click事件更好:

$("input[id^='form_0009_fld_5']").on('change', function() {
    var elems = $('input[name^="form_0009_fld_6"]'),
        state = this.checked;

    elems.closest('.formField').toggle(state);

    if (!state) elems.prop('checked', false);
});
于 2013-04-30T19:28:30.567 回答
1

Jquery 允许您链接函数,以便您可以添加到hide.

例如:

$('longselector').closest('.formField').hide().attr("checked", false);

以及您的其余代码。

$("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().attr("checked", false);
        }
});
于 2013-04-30T19:28:48.873 回答