将已检查的项目写入数组

时间:2012-06-21 17:42:24

标签: javascript jquery asp.net html

这些是我的许多复选框,我需要在保存时抓取选定的复选框并创建一个将保存的数组/数字串。

<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来获取复选框,而不是从页面中获取每一个?

3 个答案:

答案 0 :(得分:3)

你可以在数组上使用.push,如下所示:

val.push(this.id);

以下是一个示例:http://jsfiddle.net/dpMp2/3/

你可以这样做:

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

makeArray上的信息可在此处找到:http://api.jquery.com/jQuery.makeArray/ note 如下所述am not i am,数组将是对象,您必须从每个obj获取id或值。阅读文档了解更多信息。

答案 1 :(得分:0)

我会使用map

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

答案 2 :(得分:0)

由于val是一个对象,因此您必须使用push函数来分配数据。

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