我有这段代码:
<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函数。
答案 0 :(得分:1)
您可以将此行更改为:
checked.push(parseInt($(this).val()) || 0);
而不是将NaN
推送到数组,它会推送0
- 您可能希望将此值更改为null
或其他
否则,您还可以在填充数组之前添加if
语句进行检查
var myInteger = parseInt($(this).val());
if(myInteger >= 0) {
checked.push(myInteger);
}