动态 bootstrap table 导出到 json(使用 input/select)
dynamic bootstrap table export to json (with input/select)
我有一个动态 table 需要导出到 json。
<table class="table table-sm" id="tab_logic">
<thead>
<tr>
<th class="text-center"> # </th>
<th scope="col"> Product </th>
<th scope="col"> Qty </th>
<th scope="col"> Price </th>
<th scope="col"> Total </th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<tr scope="row" id='addr0'>
<td> 1 </td>
<td>
<select class="form-control-sm">
<option>Item1</option>
</select>
</td>
<td><input type="number" name='qty[]' placeholder='Enter Qty' class="form-control-sm qty" step="0" min="0"/></td>
<td><input type="number" name='price[]' placeholder='Enter Unit Price' class="form-control-sm price" step="0.00" min="0"/></td>
<td><input type="number" name='total[]' placeholder='0.00' class="form-control-sm total" readonly/></td>
<td >
<button type="button" class="btn-sm btn-danger del">Del</button>
</td>
</tr>
</tbody>
</table>
我使用了 的导出方法来确保从 table 中的输入和 select 对象获取数据:
var tbl = $('#tab_logic tbody tr').map(function (idxRow, ele) {
//
// start building the retVal object
//
var retVal = {
id: ++idxRow
};
//
// for each cell
//
var $td = $(ele).find('td').map(function (idxCell, ele) {
var input = $(ele).find(':input');
//
// if cell contains an input or select....
//
if (input.length == 1) {
var attr = $('#tab_logic thead tr th').eq(idxCell).text();
retVal[attr] = input.val();
} else {
var attr = $('#tab_logic thead tr th').eq(idxCell).text();
retVal[attr] = $(ele).text();
}
});
return retVal;
}).get();
console.log(tbl);
alert(tbl);
当我提醒结果时,我得到一个空对象。
我做错了什么??
不是空对象但是alert
无法显示,需要将变量转换为字符串。
alert(JSON.stringify(tbl));
我有一个动态 table 需要导出到 json。
<table class="table table-sm" id="tab_logic">
<thead>
<tr>
<th class="text-center"> # </th>
<th scope="col"> Product </th>
<th scope="col"> Qty </th>
<th scope="col"> Price </th>
<th scope="col"> Total </th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<tr scope="row" id='addr0'>
<td> 1 </td>
<td>
<select class="form-control-sm">
<option>Item1</option>
</select>
</td>
<td><input type="number" name='qty[]' placeholder='Enter Qty' class="form-control-sm qty" step="0" min="0"/></td>
<td><input type="number" name='price[]' placeholder='Enter Unit Price' class="form-control-sm price" step="0.00" min="0"/></td>
<td><input type="number" name='total[]' placeholder='0.00' class="form-control-sm total" readonly/></td>
<td >
<button type="button" class="btn-sm btn-danger del">Del</button>
</td>
</tr>
</tbody>
</table>
我使用了
var tbl = $('#tab_logic tbody tr').map(function (idxRow, ele) {
//
// start building the retVal object
//
var retVal = {
id: ++idxRow
};
//
// for each cell
//
var $td = $(ele).find('td').map(function (idxCell, ele) {
var input = $(ele).find(':input');
//
// if cell contains an input or select....
//
if (input.length == 1) {
var attr = $('#tab_logic thead tr th').eq(idxCell).text();
retVal[attr] = input.val();
} else {
var attr = $('#tab_logic thead tr th').eq(idxCell).text();
retVal[attr] = $(ele).text();
}
});
return retVal;
}).get();
console.log(tbl);
alert(tbl);
当我提醒结果时,我得到一个空对象。 我做错了什么??
不是空对象但是alert
无法显示,需要将变量转换为字符串。
alert(JSON.stringify(tbl));