如何存储所有选中复选框的所有ID?

时间:2014-01-26 07:03:36

标签: jquery html

我有动作下拉框调用actionFunc()来做某事

这是actionFunc():

 <script language="javascript">

    $(document).ready(function()
    {

        $("#paradigm_all").click(function()             
        {
            var checked_status = this.checked;
            $("input[name=notPaid]").each(function()
            {
                this.checked = checked_status;

            });

        });                 
    });

    function actionFunc(){
                var CHKcollect = [];

        CHKcollect.push($("input[name=notPaid]:checked").attr('id'));
        alert (CHKcollect);

        }


 </script>

这是复选框

<input  id="<separator>'.$user_id.'<separator>'.$orvalue.'<separator>'.$prodId.'<separator>" name="notPaid"  class="css-checkbox" type="checkbox"   onClick="notPAID(this.id)"  />

.......这是选择框

  <a><select  onchange="actionFunc()" id="itemselected" class="optselct"  >
           <option  value="Select" selected="selected">Select the action</option>
           <option value="pay">Pay for it</option>
           <option value="del">Delete it</option>
           <option value="mov">Move to waiting list</option>
      </select></a>

此功能仅警告第一个选中的复选框,而不是所有选中的复选框。 我在这做错了什么?我需要将所有ID存储在一个数组中,以便由json

解析

提前致谢

3 个答案:

答案 0 :(得分:1)

var CHKcollect = [];

$("input[name='notPaid']:checked").each(function(){
    CHKcollect.push(this.id);
});

alert(CHKcollect);

答案 1 :(得分:1)

如果您引用位于herejQuery函数的attr文档,您会看到它们声明了以下内容......

  

获取集合中第一个元素的属性值   匹配的元素或为每个匹配的元素设置一个或多个属性   元件。

你只获得数组中第一个元素的原因是因为这一行..

CHKcollect.push($("input[name=notPaid]:checked").attr('id'));

您只获取返回的第一个元素的属性,而不是所有元素。

您需要迭代返回的每个元素并获取属性。

$("input[name=notPaid]:checked").each(function()
{
    CHKcollect.push($(this).attr('id'));
});

答案 2 :(得分:0)

$('#itemselected').on('change', function()
            {
                var CHKcollect = [];

                $("input[name=notPaid]:checked").each(function() {

                    CHKcollect.push(this.id);


                });

                alert(CHKcollect);
            });

检查工作jsFiddle