具有相同名称的多个复选框.我怎么知道哪些是未选中的



所以我只是遇到了一个奇怪的情况,即复选框只是在压力我。我正在尝试构建一个看起来像这样的"里程碑"功能:

[浏览状态] [1] |[编辑状态] [2] [1]:https://i.stack.imgur.com/f0xv4.png [2]:https://i.stack.imgur.com/slfqu.png


我在这里使用ms[],以便我可以使用PHP帖子将所有项目拉到后端。

<input type="text" class="form-control" name="ms[]" value="<?=$value["content"]?>">

问题在于,当我使用$_POST['ms[]']获得这些复选框时,实际上只给了我一个仅检查项目的数组。那我真的不知道哪些是用户未选中的。

我在这里阅读了一些流行的解决方案,所有这些解决方案似乎都要求我的输入的名称属性不同。但是,由于"里程碑"是可删除且可添加的,因此我不能为每个名字命名。

我还提出了其他一些可能的解决方案,例如制作所有这些复选框隐藏的文本框。每当用户检查或取消选中一个复选框时,相应的文本框都设置为'1'或'0'。但这需要我改造整个事情。

我只是想知道是否有任何简单且可靠的方法可以完整地列出复选框列表,无论检查它们是否?

感谢您提前的帮助。

尝试一下,有多种方法可以做到这一点。在每个状态更改复选框上,或在某些事件中获得一次。

  1. 对于每个复选框,单击。

    $(document).ready(function(){
        $('input[type=checkbox]').each(function(){
            //register for each checbox a click event
            $(this).on('click', function(){
               //check if this checbox is checked or not
               if($(this).is(':checked') == false)
               {
                //your logic
              }
            });
        });
    });
    
  2. 或提交服务器之前,

     $(document).ready(function(){
            $('input[type=checkbox]').each(function(){
                //check if this checbox is checked or not
                if($(this).is(':checked') == false)
                {
                  //your logic
                }
            });
        });
    

最新更新