Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查看是否使用jQuery选中了所有复选框中的任何一个_Jquery_Loops_Jsp_Jstl - Fatal编程技术网

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

如何查看是否使用jQuery选中了所有复选框中的任何一个,jquery,loops,jsp,jstl,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}

我用循环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">

座位${loop.index}
我想检查是否选中了任何复选框,如果未选中任何复选框,则按钮将被禁用

我知道如何检查复选框是否选中,我知道如何禁用按钮。然而,我不知道如何使用循环实现它,因为我以前很少使用JQUERY。这是我尝试过的

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

函数x(){

对于(var i=1;i您的代码只检查第一个座位,而忽略其余的座位,因为要检查所有复选框,您需要循环检查所有复选框,而您在这里没有这样做

var count = 0;
$($('input[type="checkbox"]')).click(function(){
  if($(this).prop('checked')){
    console.log("Checkbox is checked.");
    count++;
  }
  else{
    console.log("Checkbox " + index + " is not checked.");
    count--;
  }
);

//Disable button if no checkbox is checked.
if(count == 0){
  $('input[type="submit"]').prop('disabled', true);
}
else{
  $('input[type="submit"]').prop('disabled', false);
}
});

希望这会对您有所帮助。

您可以简单地使用以下jQuery,基本上可以归结为一个toget(all):

如果表单中碰巧有其他复选框,请输入:

设置提交按钮的禁用状态可通过以下方式完成:

$("input[type=submit]").prop("disabled", disabled);
其中,
禁用
是一个布尔值

知道了这一点,您可以使用它设置submit按钮禁用状态,如:

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

什么是
(索引,复选框)
?@KevinGuswanto
索引
是ckeckbox的索引。就像您创建了8个复选框一样,第一个复选框的索引是
0
,下一个是
1
,依此类推。
复选框
是带有给定
索引
的复选框。这是默认值,所以我不需要更改它?@KevinGuswanto我没有得到代码a即使我使用JSTL初始化复选框,bove仍然可以工作?JSTL与Javascript有什么关系?没关系。请您根据我的案例进一步解释一下您的代码,好吗?另外,如果您能帮我更正我的标题,我将不胜感激。我把自己弄糊涂了。基本上,您有两个问题:1)如何检查是否使用Javascript/jQuery选中了许多复选框中的任何一个,2)使用Javascript/jQuery设置submit按钮的禁用状态。以上两个问题都有答案。
$("input.seats[type=checkbox]:checked").length === 0
$("input[type=submit]").prop("disabled", disabled);
$("input[type=submit]").prop("disabled", $("input[type=checkbox]:checked").length === 0);