首页 > 解决方案 > 满足所有条件后如何运行函数

问题描述

我正在尝试为我打算提供的包制作一个带有单选按钮和复选框的联系表格。第一个收音机是完整的包。第二个单选按钮显示将完整包分解为单个选项的复选框。

我想要实现的是当所有复选框都被选中时,第一个收音机被选中并且所有复选框都未被选中并被隐藏。我设法让这个功能用一点点工作

var radio1 = document.getElementbyID('radio1');
var radio2 = document.getElementbyID('radio2');
var checkgroup = document.getElementbyID('checkgroup');
var check1 = document.getElementbyID('check1');
var check2 = document.getElementbyID('check2');
var check3 = document.getElementbyID('check3');
var check4 = document.getElementbyID('check4');
$(document).change(function () {
    if (radio2.checked) {
        checkgroup.style.display = "block";
    } else {
        checkgroup.style.display = "none";
    }
});
$(document).change(function () {
    if ((check1&&check2&&check3&&check4).checked) {
    check1.checked = false;
    check2.checked = false;
    check3.checked = false;
    check4.checked = false;
    checkgroup.style.display = "none";
    radio1.checked = true;
    }
});

每当我选中条件中最后一个复选框if()(仅最后一个,而不是其他复选框)时,它都会执行错过重点的功能。我的目标:如果全部选中,则执行功能(取消选中所有,隐藏复选框,切换回 Radio1)。如果任何 3 被选中,则不会发生任何事情。我觉得我错过了什么,我只是不知道是什么。

标签: javascriptvariablesoperators

解决方案


更改if ((check1&&check2&&check3&&check4).checked)
if (check1.checked && check2.checked && check3.checked && check4.checked)

我很困惑它甚至有点工作,因为你本质上是在 Javascript 对象之间使用 && 而不是(布尔)变量


推荐阅读