2014-01-17 51 views
0

我編寫了一個函數來檢查頁面上的所有複選框輸入並將「checked」輸入到數組中。檢查值正確,但我也得到這些「dedup:函數,包含:函數」值。爲什麼?Javascript數組返回[「item1」,「item2」,dedup:function,contains:function]

這裏是我的功能:

var custTreatments = []; 

function Checkform() { 
    $(':checkbox:checked').each(function(){ 
    custTreatments.push($(this).val()); 
    return custTreatments; 
    }); 
} 

Checkform();  

HTML是非常簡單的:

<input type="checkbox" value="item1" />item1 
<input type="checkbox" value="item2" />item2 
<input type="checkbox" value="item3" />item3 

謝謝!

+0

您可能需要更改的實施,'函數Checkform(){ 收益$( ':複選框:選中')地圖(函數(){ 回報THIS.VALUE; })獲得(); } var custTreatments = Checkform();' –

+1

你在使用什麼庫?它看起來像是在擴展Object或擴展jQuery集合。 –

+1

它看起來像數組擴展一些額外的方法? –

回答

-1

編輯JS實施:

var custTreatments = []; 

function Checkform() { 
    $('[type=checkbox]:checked').each(function(){ 
    custTreatments.push($(this).val()); 
    return custTreatments; 
    }); 
} 

Checkform(); 

UPDATE

我檢查一下。我犯了一個錯誤。 T_T

$( 「:勾選」)等同於$( 「[類型=複選框]」)

您的代碼似乎很好地工作。

http://jsfiddle.net/B274h/1/

測試你能再次重現呢?

+2

所以你建議使用'[type = checkbox]'而不是':checkbox'?爲什麼?爲什麼它會解決OP的問題?請**解釋**您的解決方案。 –

+0

更新了........ –

+0

darn,同樣的結果... –

相關問題