例如,我从第二页选择(选中) 2 行,而不是转到第一页并选择 3 行。我希望当我留在第一页时从 5 所选行中获取信息。
$('tr.row_selected') - 不工作
感谢。
UPD。
我创建了这样的处理程序:
$('#example').find('tr td.sel-checkbox').live("click", function () {
/*code here*/
});
但是现在当click事件发生时,表中的行正在隐藏。我认为它可能是DataTables的排序或分组操作。知道我必须对此做些什么吗?
答案 0 :(得分:3)
选中复选框后,将所需的行信息存储在全局对象中作为键值对
我不记得我之前是怎么做的,但语法类似于
$('input[type=checkbox]').click(function()
{
var row = $(this).parent(); //this or something like it, you want the TR element, it's just a matter of how far up you need to go
var columns = row.children(); //these are the td elements
var id = columns[0].val(); //since these are TDs, you may need to go down another element to get to the actual value
if (!this.checked) //becomes checked (not sure may be the other way around, don't remember when this event will get fired)
{
var val1 = columns[1].val();
var val2 = columns[2].val();
myCheckValues[id] =[val1,val2]; //Add the data to your global object which should be declared on document ready
}
else delete myCheckValues[id];
});
提交时,从对象中获取所选行:
for (var i = 0; i < myCheckValues.length; i++)
...
很抱歉,很长一段时间没有完成JS,所以代码可能不起作用,但你明白了。
答案 1 :(得分:3)
$('#example').find('tr td.sel-checkbox').live("click", function () {
var data = oTable.fnGetData(this);
// get key and data value from data object
var isSelected = $(this).hasClass('row_selected');
if(isSelected) {
myCheckValues[key] = value;
checkedCount++;
} else {
delete myCheckValues[key];
checkedCount--;
}
});
..... 提交
if(checkedCount > 0) {
for(var ArrVal in myCheckValues) {
var values = myCheckValues[ArrVal]; // manipulate with checked rows values data
}
}