2011-02-07 103 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

相關問題