2011-02-07 94 views
1

我有一个自定义的固定头表元素。基本上它是如何工作的,我设置了一个类,它将根据数据库返回的数据填充到该类型的类的列表中。我想为每个返回的元素复选框,如果选中的话将被添加到数组中。当用户选择“打印”我有逻辑,将打印选定的行的记录。我还在标题中为该列选择了全选项。下面是一个简单的例子:获取所有选中的元素和值到数组中

|Name|ID|Product|Date|Select All 'checkbox'| 
----------------------------------------- 
|JonS|01|prodOne|Date|'checkbox'   | 
|AmyA|02|prodTwo|Date|'checkbox'   | 

当用户选择所述选择所有复选框我有以下的javascript,将选择/取消选择每个复选框元件。

function showHideAll() { 
    if (document.getElementByID('AllCheckBox').checked == 1){ 
     $('.RowCheckBoxClass').attr('checked',true); 
    } 
    else { 
     $('.RowCheckBoxClass').attr('checked',false); 
    } 
} 

这一切工作,一切都很好。底部有一个“打印”按钮。基本上我正在运行这个打印队列。选择你想要的记录并点击打印,它将打印选定的记录。我怎么能找到选定的行?我需要选中的行复选框的ID。在我的班级将是数据列表,我可以添加一个onclick函数。问题是,我不想每次用户点击一个复选框并且必须保留一个查询字符串。我只想获取复选框行的ID,并将其添加到使用javascript或c#方法的数组中。

我想有一个jscript方法,将扫描并查看哪些框被检查。但是,我仍然无法将这些添加到队列中。任何帮助或想法?

回答

1

看起来像你使用jQuery已经:

var checkedIdList = []; 
    $('.RowCheckBoxClass').each(function(_, cb) { 
    if (cb.checked) { 
     checkedIdList.push($(cb).closest('tr').find('td')[1].text()); 
    } 
    }); 

如果 “ID” 的值是数字,然后您可能想将文本转换为数字:

 checkedIdList.push(parseInt($(cb).closest('tr').find('td')[1].text(), 10)); 
0

更好的方法是为所有选中的项添加一个类,并在复选框中添加一个rel来存储id。现在,当您尝试使用所有已选中的选项时,请使用选中的课程调用所有选项并加入所有ID。


function showHideAll() { 
     if (document.getElementByID('AllCheckBox').checked == 1){ 
      $('.RowCheckBoxClass').attr('checked',true); 
     } 
     else { 
      $('.RowCheckBoxClass').attr('checked',false); 
     } 
    } 

可以简化为

function showHideAll() { 
     $('.RowCheckBoxClass').attr('checked', $('#AllCheckBox').attr('checked')); 
} 
0

要扫描的页面,找到所有选中的行,你可以这样做(因为你使用jQuery的话):

$(".RowCheckBoxClass:checked"); 
+0

这工作抓住所有被检查的元素。我做了var checkedItems = $(“。RowCheckBoxClass:checked”);并获得了检查项目的集合。我怎样才能找到哪些项目被检查?通过这个集合循环并找到他们的ID? – Tom 2011-02-07 19:53:19

相关问题