如何在javascript中从字符串中删除数据
How to delete data from String in javascript
我有一个数据表,其中每行都有复选框。在我的数据表外,有一个打印按钮,用于打印所选行的数据。我将按用户将所有选定的行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];
}
});
我建议您将复选框ID列表管理为一个数组,然后在将其传递给控制器时将其序列化为字符串。这种方法要简单得多:
// Initialize array
var invoiceArray = [];
// Add item to array
invoiceArray.push(invsysNumber + "," + invverNumber);
// Remove specified item from array
var itemToRemove = invsysNumber + "," + invverNumber;
for (var i=0, il=invoiceArray.length; i<il; i++) {
if (invoiceArray[i] === itemToRemove) {
invoiceArray.splice(i, 1);
break;
}
}
// Convert array to a string for your controller
var invoiceArrayString = invoiceArray.join('~');
或者,如果您将当前解决方案中的"invoiceArray"实际上是一个字符串(名称不正确),则无论如何都必须将其转换为数组才能删除项。
// Remove item from "invoiceArray" string
var invoiceArraySplit = invoiceArray.split('~');
var itemToRemove = invsysNumber + "," + invverNumber;
for (var i=0, il=invoiceArraySplit.length; i<il; i++) {
if (invoiceArraySplit[i] === itemToRemove) {
invoiceArraySplit.splice(i, 1);
break;
}
}
// Convert back to string
var invoiceArray = invoiceArraySplit.join('~');
相关文章:
- React 15使用空字符串删除输入值
- IE在将字符串转换为日期时从日期中删除4小时
- 从字符串末尾删除空白无效
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- 如何从字符串中删除除字母、数字、空格、感叹号和问号之外的所有内容
- JavaScript从字符串中删除尾随空格和句点
- 正在删除'<以及那些>'来自javascript中的字符串
- jQuery 2.1 |删除重复子字符串的源子字符串
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- 删除一个“;从javascript中的字符串末尾
- 从JavaScript中的名称-值对字符串中删除值
- 如何使用javascript在html表中删除字符串
- 如何在字符串中的值之前删除字符串中的动态数据?/ 使用 Lodash 的 _.trimStart 与动态数据
- 如何使用Jscript | JQuery在textArea中获取插入的|删除的字符串的索引和长度
- 如何删除“"使用javascript从字符串中提取字符
- 如何比较两个字符串并删除jquery中的元素
- javascript字符串删除X位置的一个字符并添加到起始位置
- JSON 字符串删除字符
- Javascript字符串删除空格和连字符
- Javascript字符串:删除除数字和第一个"