【发布时间】:2015-07-09 21:13:27
【问题描述】:
我有一个动态创建的表,我正在使用 DataTables 和 TableTools - 它工作得很好,除了我有一个输入文本框,我需要在单击按钮时获取值,但它只给了我 html,例如
<input size="3" type="text">
我已经创建了一个 DataTables live 来尝试重新创建问题,但奇怪的是那里返回的 html 给出了它不适合我的值(在 html 中,但至少我可以解析它) - 它仍然但是,如果您更改数量,则不会给您正确的值-请参阅此处http://live.datatables.net/bidetoku/1/
这是创建表的方式:
var tr = [];
var sorTable = document.getElementById('tblSORS');
for (var i = 0; i < sorresults.length; i++) {
tr[i] = document.createElement('tr');
var tdsorID = document.createElement('td');
var tdCode = document.createElement('td');
var tdDesc = document.createElement('td');
var tdClient = document.createElement('td');
var tdCreated = document.createElement('td');
var tdQuantity = document.createElement('td');
var inputQty = document.createElement('input');
inputQty.type = "text";
inputQty.value = "1";
inputQty.size = "3";
tdsorID.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_scheduleofratesid').nodeTypedValue));
tdCode.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_code').nodeTypedValue));
tdDesc.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_description').nodeTypedValue));
tdClient.appendChild(document.createTextNode(sorresults[i].selectSingleNode('./itt_clientcontractid.itt_description').nodeTypedValue));
tdQuantity.appendChild(inputQty);
tdCreated.appendChild(document.createTextNode(returnDate(sorresults[i].selectSingleNode('./createdon').nodeTypedValue)));
tr[i].appendChild(tdsorID);
tr[i].appendChild(tdCode);
tr[i].appendChild(tdDesc);
tr[i].appendChild(tdClient);
tr[i].appendChild(tdQuantity);
tr[i].appendChild(tdCreated);
sorTable.getElementsByTagName('tbody')[0].appendChild(tr[i]);
}
var sors = $('#tblSORS').DataTable({
"destroy": true,
"info": false,
"lengthChange": true,
dom: 'T<"clear">lfrtip',
tableTools: {
"sRowSelect": "multi",
"aButtons": ""
}
});
// hide scheduleofratesid column
sors.column(0).visible(false);
任何帮助都会很棒,现在已经为此苦苦挣扎了一段时间。
编辑:这里有一些代码似乎完成了我想要的一半但不完全
function getQuantity(){
var table = $('#example').dataTable();
var data = table.$('input').serialize();
var oTT = $.fn.dataTable.TableTools.fnGetInstance('example');
var rows = oTT.fnGetSelectedData();
if (rows.length > 0) {
var selectedRows = oTT.fnGetSelectedIndexes();
selectedRows.forEach(function (i) {
alert(document.getElementById('example')
.rows[i]
.cells[0]
.firstChild
.value
);
});
}
}
【问题讨论】:
-
你能附上小提琴吗??
-
@GuruprasadRao 我做了 - live.datatables.net/bidetoku/1 - 谢谢
标签: javascript jquery datatables jquery-datatables tabletools