2012-06-21 79 views
0

這些是我的許多複選框,我需要在保存時抓住所選的項並創建將保存的數組/字符串。將選中的項目寫入數組

<asp:CheckBox ID="4" runat="server" ClientIDMode="Static"/> 

我需要添加一個數字的值,這樣我可以得到該複選框,所以我可以得到的東西,如「1,4,8,9」(複選框選中)或者我可以數從ID獲取它?

我一直在尋找這樣的事情作爲一個例子:

$(function(){ 
    $('#btnClick').click(function(){ 
    var val = []; 
    $(':checkbox:checked').each(function(i){ 
     val[i] = $(this).val(); 
    }); 
    }); 
}); 

編輯:

有沒有辦法通過啓動ID來獲得的複選框專門爲沒有得到的頁面每一個?

+0

您是否試圖將ID映射到值?實際呈現的HTML是什麼樣的?你期望的結果是什麼? – 2012-06-21 17:53:13

回答

3

您可以在陣列的使用.push像這樣:

val.push(this.id); 

下面是一個例子:http://jsfiddle.net/dpMp2/3/

你可以這樣做:

var val = $.makeArray($(':checkbox:checked')); 

信息makeArray可以在這裏找到:http://api.jquery.com/jQuery.makeArray/ note as am not i am陳述如下,數組將是對象,您將不得不從每個obj獲取id或值。閱讀文檔以獲取更多信息。

+2

使用'.push()'不會改變結果。和'$ .makeArray'不會給你值。 – 2012-06-21 17:50:52

0

我會用map

$(':checkbox:checked').map(function(){ return $(this).val(); }) 
+0

如果OP想要一個實際的數組,就不要忘記'.toArray()'。 – 2012-06-21 17:51:50

0

由於VAL是一個對象,所以你必須使用push功能來分配數據。

$(function(){ 
    $('#btnClick').click(function(){ 
    var val = []; 
    $(':checkbox:checked').each(function(i){ 
     val.push($(this).val()); 
    }); 
    }); 
}); 
+0

你不必使用'.push()'。 OP的方法同樣有效。 – 2012-06-21 17:49:43