如何查看是否使用jQuery选中了所有复选框

时间:2018-08-13 03:11:07

标签: jquery loops jsp jstl

我用这样的循环JSTL创建了8个复选框和1个btn

<c:forEach begin="1" end="8" varStatus="loop">
        <input type="checkbox" onchange = "x()" id="seat${loop.index}" name="seat${loop.index}" value="seat${loop.index}">
        <label for="seat${loop.index}">Seat${loop.index}</label>
</c:forEach>
<input type="submit" value="Save" name="savebtn">

我想检查是否选中了复选框中的任何一个,如果未选中,则该按钮将被禁用

我知道如何检查该复选框是否被选中,我知道如何禁用该按钮。但是,我不知道如何使用循环来实现它,因为我以前没有使用过JQUERY。这是我尝试做的。

<script>
function x() {
    for (var i = 1; i <= 8; i++){
        if ($(seat+i).prop('checked')){
            alert("+1")
        }
        else{
            alert("-1")
        }
    }
}
</script>

此代码仅检查是否检查了我的第一个座位,而忽略了其余座位。 P.S:复选框必须使用JSTL初始化

2 个答案:

答案 0 :(得分:1)

您可以简单地使用以下jQuery,基本上归结为拥有一个selector以获取(全部)checked checkboxes

$("input[type=checkbox]:checked").length === 0

如果您的表单中碰巧还有其他复选框,请输入class

<input type="checkbox" class="seat" ... />
$("input.seats[type=checkbox]:checked").length === 0

可以使用以下命令设置提交按钮的禁用状态:

$("input[type=submit]").prop("disabled", disabled);

其中disabled是布尔值。

知道这一点后,您可以使用它来设置“提交”按钮的禁用状态,例如:

$("input[type=submit]").prop("disabled", $("input[type=checkbox]:checked").length === 0);

答案 1 :(得分:0)

您的代码仅检查第一个席位,而忽略其余席位,因为要选中所有复选框,您需要遍历所有复选框,而您无需在此处进行操作。

x

希望这会对您有所帮助。

相关问题