bootstrap的table表头追加了input框,更新table数据,input框值清空了
时间: 2023-11-15 18:05:42 浏览: 79
这个问题可能是因为当你更新表格数据时,你没有保存输入框的值,导致输入框的值被清空了。你可以通过以下几种方法解决这个问题:
1. 在更新表格数据之前,获取输入框的值并保存下来,然后在更新后重新设置输入框的值。你可以使用 jQuery 的 val() 方法来获取和设置输入框的值。
```javascript
// 获取输入框的值
var inputValue = $('#inputId').val();
// 更新表格数据
// 重新设置输入框的值
$('#inputId').val(inputValue);
```
2. 将输入框的值保存到表格数据中,在更新表格数据时一并更新输入框的值。这需要在表格的数据结构中添加一个属性来保存输入框的值。
```javascript
var tableData = [
{
name: 'John',
age: 25,
inputVal: ''
},
{
name: 'Jane',
age: 30,
inputVal: ''
}
];
// 添加表格数据时,也设置输入框的值
$('#table').bootstrapTable({
data: tableData,
columns: [
{
field: 'name',
title: 'Name',
sortable: true
},
{
field: 'age',
title: 'Age',
sortable: true
},
{
field: 'inputVal',
title: 'Input Value',
formatter: function(value, row, index) {
return '<input type="text" value="' + value + '">';
},
events: {
'change input': function(e, value, row, index) {
// 保存输入框的值到表格数据中
row.inputVal = $(e.target).val();
}
}
}
]
});
// 更新表格数据时,也更新输入框的值
tableData[0].age = 26;
tableData[0].inputVal = 'New Input Value';
$('#table').bootstrapTable('load', tableData);
```
3. 使用插件或框架提供的 API 来处理输入框的值。例如,可以使用 bootstrap-table-editable 插件来实现可编辑的输入框,并在更新数据时自动保存输入框的值。
```javascript
$('#table').bootstrapTable({
data: tableData,
columns: [
{
field: 'name',
title: 'Name',
sortable: true
},
{
field: 'age',
title: 'Age',
sortable: true
},
{
field: 'inputVal',
title: 'Input Value',
editable: {
type: 'text',
title: 'Input Value',
emptytext: '',
params: function(params) {
// 保存输入框的值到表格数据中
var row = $('#table').bootstrapTable('getRowByUniqueId', params.pk);
row.inputVal = params.value;
return params;
}
}
}
]
});
// 更新表格数据时,也更新输入框的值
tableData[0].age = 26;
tableData[0].inputVal = 'New Input Value';
$('#table').bootstrapTable('load', tableData);
```
阅读全文