jquery数组的复选框和[NaN]

时间:2015-07-18 22:33:37

标签: jquery arrays

我有这段代码:

<script>
$(document).ready(function (){
    $("#div_box_submit_ad").click(function (e) {
        e.preventDefault();
        var checked = []
        var hidden_d = $("#hidden_d").val();
        var hidden_id_ad = $("#hidden_id_ad").val();
        $("input[name='chk[]']:checked").each(function ()
        {
            checked.push(parseInt($(this).val()));
            console.log(checked);
            alert(checked);
            alert(hidden_d);
            alert(hidden_id_ad);
        });
    });
});
</script>

它运行正常但我的问题是当复选框包含文本而不是数字时,在alert()函数中我得到:[NaN] ..

如何避免这种情况?我还需要避免这种情况,因为我需要在下一步将数组传递给php函数。

1 个答案:

答案 0 :(得分:1)

您可以将此行更改为:

checked.push(parseInt($(this).val()) || 0);

而不是将NaN推送到数组,它会推送0 - 您可能希望将此值更改为null或其他

否则,您还可以在填充数组之前添加if语句进行检查

var myInteger = parseInt($(this).val());
if(myInteger >= 0) {
   checked.push(myInteger);
}