【发布时间】:2016-03-29 23:10:47
【问题描述】:
我有一个数据表,其中每一行都有复选框。在我的数据表之外有一个打印按钮,用于打印所选行的数据。我将用户选择的所有行 ID 数据存储在字符串中。现在,当用户取消选中该复选框时,我想从该字符串对象中删除行 ID 数据。每当用户取消选中该复选框时,它都不会从我之前保存的字符串中删除数据。要在此处指定,我只能将字符串对象发送到控制器。 我不确定如何实现这一目标。
下面是我的代码。
For print,here is the function
$("img#print").live("click",function(){
var checkboxes = document.getElementsByName('CheckBoxTest');
var mnFlag = false;
var row;
checkedbills = "";
for (var i=0; i<checkboxes.length; i++)
{
if (checkboxes[i].checked)
{
row = checkboxes[i].id;
row = row.substring(row.search("_") + 1,row.length);
sData = $("#openItems").dataTable().fnGetData(row);
if(sData.SrcTypCode == "Y8")
{
mnFlag= true;
checkedbills = invoiceArray;
}
}
}
if(mnFlag)
{
$('#reBill-dialog').dialog({
autoOpen: true,
height: 600,
width: 650,
modal: true,
dialogClass: "foo1",
closeOnEscape: false,
draggable: true,
canMinimize: true,
beforeClose: cancelReBill()
});
}
else
{
if(billData.length < 1)
{
alert("Please select at least one bill to be printed");
}
else
{
$.ajax({
dataType: "json",
type: "POST",
url: 'data_print',
data: {billData:billData},
success: function(dataList){
var printDet = dataList.PrintDetails;
if(printDet == "N"){
alert(dataList.PrintMessage);
}
else{
alert(dataList.PrintMessage);
}
},
error: function(xhr, ajaxOptions, thrownError) {
}
});
}
}
});
下面是我在选中复选框时将数据存储在字符串中的代码。
$('#bills tbody tr input[name="CheckBoxTest"]').live('change',function(e){
var row=$(this).closest("tr").get(0);
var invsysNumber = $('#bills').dataTable().fnGetData(row).invSysNumber;
var invverNumber = $('#bills').dataTable().fnGetData(row).invVerNumber;
var data = $('#bills').dataTable().fnGetData(row).invSysNumber+','+$('#bills').dataTable().fnGetData(row).invVerNumber;
var index ;
if(data in checkboxAccIndicator )
{
index=1;
}
else
{
index=-1;
}
if($(this).is(':checked') && (index == -1))
{
checkboxAccIndicator[$('#bills').dataTable().fnGetData(row).invSysNumber+
","+$('#bills').dataTable().fnGetData(row).invVerNumber]=
$('#bills').dataTable().fnGetData(row).arLocation;
if(invoiceArray == ""){
invoiceArray = "~" + invsysNumber + "," + invverNumber ;
}else {
invoiceArray = invoiceArray + "~" + invsysNumber + "," + invverNumber ;
}
// Otherwise, if checkbox is not checked and row ID is in list of selected row IDs
}
else if (!($(this).is(':checked')) && (index != -1))
{
delete checkboxAccIndicator[$('#bills').dataTable().fnGetData(row).invSysNumber+
","+$('#bills').dataTable().fnGetData(row).invVerNumber];
}
});
【问题讨论】:
标签: javascript jquery string datatables