在jQuery中获取一组Checked复选框值

时间:2015-03-01 16:04:09

标签: php jquery

我有一个生成的复选框

<?php
                $days = array(
                    'Sat' => 'Saturday',
                    'Sun' => 'Sunday',
                    'Mon' => 'Monday',
                    'Tue' => 'Tuesday',
                    'Wed' => 'Wednesday',
                    'Thu' => 'Thursday',
                    'Fri' => 'Friday'
                );
                ?>
                <ul>
                    <?php
                    foreach ($days as $value) {
                        ?>
                        <input class="days" type="checkbox" name="days[]" value="<?= $value; ?>" /> <?= $value; ?><br>
                        <?php
                    }
                    ?>
                </ul>

我希望使用Jquery

获取所选值

我试过很多方法,但它不起作用 ......谢谢你

2 个答案:

答案 0 :(得分:0)

如果您希望获得&#34;密钥&#34;那么您的PHP脚本就会出现问题。在复选框的name属性中,您必须编写此php脚本:

$days = array(
                'Sat' => 'Saturday',
                'Sun' => 'Sunday',
                'Mon' => 'Monday',
                'Tue' => 'Tuesday',
                'Wed' => 'Wednesday',
                'Thu' => 'Thursday',
                'Fri' => 'Friday'
            );
            ?>
            <ul>
                <?php
                    foreach ($days as $key => $value)
                    {
                        echo '<input class="days" type="checkbox" name="'.$key.'" value="'.$value.'">'.$value.'<br>';
                    }
                ?>
            </ul>

在您的php脚本中,结果为:<input class="days" type="checkbox" name="days[]" value="Sunday" /> Sunday<br>

我不知道您为什么要使用JQuery来检查选中的复选框,这可以使用以下JavaScript轻松完成:

函数getCheckedValues()返回一个包含所有已检查复选框值的数组。

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <meta charset="utf-8">
</head>
<body>
    <input class="days" type="checkbox" name="Sat" value="Saturday">Saturday<br>
    <input class="days" type="checkbox" name="Sun" value="Sunday">Sunday<br>
    <input class="days" type="checkbox" name="Mon" value="Monday">Monday<br>
    <input class="days" type="checkbox" name="Tue" value="Tuesday">Tuesday<br>
    <input class="days" type="checkbox" name="Wed" value="Wednesday">Wednesday<br>
    <input class="days" type="checkbox" name="Thu" value="Thursday">Thursday<br>
    <input class="days" type="checkbox" name="Fri" value="Friday">Friday<br>
    <script>
        var daysCheckBoxs = document.getElementsByClassName("days");

        function getCheckedValues()
        {
            var checked = new Array();
            for (var i = 0; i < daysCheckBoxs.length; i++)
            {
                if (daysCheckBoxs[i].checked)
                {
                    checked.push(daysCheckBoxs[i].value); // If you would like to get the name you can do the following instand daysCheckBoxs[i].name
                }
            }
            return checked;
        }
    </script>
</body>
</html>

答案 1 :(得分:0)

Joseph Vigdorovich

非常感谢你 我试过了,它的确有效。

但我遇到了问题 当我将它传递给php文件时,只传递最后一个选项。 所以我尝试了这个,它也适用于我

var selected ='';
        $("input:checkbox:checked").each(function(){
            selected += $(this).val()+'-';
        });