2015-07-18 53 views
0

我有這樣的代碼:jQuery的陣列和[NaN的]

<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> 

它工作正常,但我的問題是,當複選框包含文本,而不是數量,在警報()函數,我得到這個: [NaN] ..

如何避免這種情況?我也需要避免這一點,因爲我需要的數組傳遞到下一個步驟一個PHP函數..

+1

您希望如何避免它?當你的價值是一個非數字文本時,你期望什麼價值? – Amit

+0

對不起我的問題,但我發現自己的錯誤..我只是改變了這一行: checked.push(parseInt($(this).val())); 至 checked.push($(this).val()); 現在很好:-) –

+0

爲什麼你有文本值,如果你想他們是數字?問題沒有意義 – charlietfl

回答

1

您可以更改此行:

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

哪個不是推NaN到陣列它將推動0 - 你可能希望將此值更改爲null或其他

否則,你還可以添加if語句來檢查填充陣列

前210
+0

感謝您的幫助,我只是意識到,parseInt函數不需要我的目的..謝謝:-) –

+0

@ P.Davide謝謝你好,但upvote可能是什麼你的意思是 ;) – Filype