我用这样的循环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初始化
答案 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
希望这会对您有所帮助。