将复选框值传递给Javascript函数时出错

时间:2014-05-23 05:30:05

标签: javascript jquery json html5 checkbox

我有一个复选框,用于存储数据库表中的值。因此,当我在页面上显示它时,它包含一组值。

<input type="checkbox" id="chkdelt[<?php echo $id; ?>]" name="chkdelt[]" value="<?php echo $id;  ?>">

上面给出的是复选框代码。

我有一个弹出式窗口,显示已选中复选框的数量。

  <div class="popup">

    Show count here <span id="numb"></span>
<button type="button" onclick="paz(<?php echo json_encode(chkdelt); ?>);">Click</button>
    </div>

我可以使用下面给出的这个javascript函数成功显示计数。

  // used to show number of checked checkboxes in popup
            function dumpInArray(){
                var arr = [];
                $('.table-responsive input[type="checkbox"]:checked').each(function(){
                    arr.push($(this).val());
                });
                return arr.length;  //returns no of checked check boxes


            }

            $('.select_chk').click(function () {
                $('#numb').html(dumpInArray());  // output of dumpInArray() written into numb span

            });

我尝试将此数组传递给Javascript函数,同时单击弹出窗口内的按钮。

我的Javascript如下:

function paz(a)
            {
                var temp = new Array();
                temp = JSON.parse(a);
                for(i=0;i<temp.length;i++)
                {
                    alert(temp[i]);
                }
            }

这些值不会传递给Javascript中的paz()。休息工作正常。当我单击弹出窗口中的按钮时,我想将所有选中复选框的值传递给paz()。

感谢。帮助???

1 个答案:

答案 0 :(得分:0)

您需要将参数作为字符串传递给JavaScript函数。

您将它们作为变量传递,而变量又将变为undefined

要将参数作为字符串传递,请使用function_name('arg')function_name("arg")

所以在代码更改中:

<button type="button" onclick="paz(<?php echo json_encode(chkdelt); ?>);">Click</button>

<button type="button" onclick="paz('<?php echo json_encode(chkdelt); ?>');">Click</button>

此外,我建议您使用<input type="button" />代替<button>&amp;我认为如果chkdelt是php中的变量名,那么您需要在其前面使用$符号并使用json_encode($chkdelt)

希望它能帮助你..干杯:)!