2015-02-10 60 views
0

我使用動態生成的表格行,並試圖同時選中/取消選中兩個不同表格中的複選框。 我們說如果用戶點擊#Table1的第一行,應該在#Table1和#Table2的第一行選中複選框。這工作正常。 但是,當用戶試圖取消選擇相同的複選框時沒有任何反應。 任何人都可以幫我解決這個問題嗎?jQuery:同時選中/取消選中兩個不同表格中的複選框

這裏是我的代碼:

$('#table1').on('click', 'tr', function (event) { 
    var rowIdx = $(this).closest("tr").index(); 
    RowSelect($("#table1"), rowIdx); 
    RowSelect($("#table2"), rowIdx); 
    if (event.target.type !== 'checkbox') { 
     $('.checkbox', this).trigger('click'); 
    } 
    $("input[name='RemoveRowCheckbox']").change(function (event) { 
     if ($(this).is(":checked")) { 
      $(this).closest('tr').addClass("CheckedRowColor"); 
     } else { 
      $(this).closest('tr').removeClass("CheckedRowColor"); 
     } 
    }); 
}); 

而這裏的jsfiddle

回答

0

要調用RowSelect功能的兩倍(即對錶1和2),並設置複選框總是如此。實際上,對於表1,您無需再次設置複選框,因爲您已經點擊了它。你只需要設置從表2複選框,因此刪除第一次調用Rowselect

//RowSelect($("#table1"), rowIdx); 
現在

在RowSelect功能,你需要在與前值否定設置複選框值如下圖所示

function RowSelect(table, rowIdx) { 
    var $chk = table.find("tr").eq(rowIdx).find("input[type=checkbox]"); 
    $chk.prop('checked', !$chk.is(':checked')); 
}; 

JSFiddle Demo

+0

感謝您的回覆。我不知道如何觸發這個「在tr點擊」,而不是「如果複選框檢查」 – Svidmax 2015-02-10 16:38:44

+0

不明白你問的是 – 2015-02-11 04:36:00

+0

道歉,我的問題有點不清楚。我的意思複選框僅在用戶單擊#Table1時的複選框而不是用戶單擊#Table1上的行時在#表2中進行檢查。 – Svidmax 2015-02-11 12:01:59

相關問題