我有以下示例代码:
<table id='myTable'>
<tr>
<td>Id</td>
<td>Status</td>
<td>Summary</td>
</tr>
</table>
//Sample document ready function
$(document).ready(function(){
$('#myTable').dataTable({
"aoColumnDefs": [
{
"aTargets":[1],
"createdCell": function (td, cellData, rowData, row, col){
if(cellData === 'ordered')
$(td).css('background-color', '#5cb85c');
if(cellData === 'not_ordered')
$(td).css('background-color', '#d9534f');
if(cellData === 'shipped')
$(td).css('background-color', '#f0ad4e');
}
},
{
"aTarget": [2],
"render": function(data, type, full, meta){
if(type === 'display' && data == null) {
data = "enter field summary";
return '<input type="text"' + data +'>';
}
else
return '<input type="text"' + data + '>';
}
}
]
});
//With this function, i want to change the background-color of select field per option selected.However, the val() is returning "undefined"
$('#myTable').on('change',function(){
var optionField = $(this).closest('tr').find('option:selected').val();
if(optionField === 'ordered')
$(this).css({'background-color':'#696969'});
else if(optionField === 'notOrdered')
$(this).css({'background-color':'#e7e7e7'});
else(optionField === 'shipped')
$(this).css({'background-color':'#326f3a'});
}
$('table').on('click', 'input[type="submit"]', function(e)){
var url = 'hiddenAPI.com';
$.ajax({
url: url,
type: "POST",
async: true,
data: {
id: idField,
status: statusField,
summary: summaryField
},
dataType: "json",
success: function (data){
$('#responseField').html('Order ' + idField + ', summary has been posted to the database successfully');
$('#myTable').ajax.reload(); //<- table not refreshing here
},
});
});
});
使用上面的代码,我想在每次选择select选项时更改背景颜色(在上面的代码中按值确定),也是在每次发送到数据库之后,我想用新的JSON刷新整个数据表数据。到目前为止,数据表站点(table.ajax.reload())上提供的API不起作用。
两个问题,
1.)使用上面的代码,如何在选择选项后更改数据表中特定列的背景颜色?
2.)如何在每次发布到数据库后刷新数据表,而不必刷新整个窗口/页面?
答案 0 :(得分:0)
在这里:
$(this).css({background-color':'#696969'});
else if(optionField === 'notOrdered')
$(this).css({background-color':'#e7e7e7'});
else(optionField === 'shipped')
$(this).css({background-color':'#326f3a'});
}
“background-color”字符串在开始时缺少额外的
编辑:抱歉,只修复了语法错误
答案 1 :(得分:0)
玩完之后,我最终自己解决了这个问题。 1.)为了刷新ajax数据,我最终在done函数内调用另一个ajax调用(来自另一个主函数)。
2。)单击并返回表格行中最接近的选定选项,我最后首先在表格上创建一个on click函数,然后嵌套另一个函数进行select on change,然后使用$(this)。最接近(&#39; TR).find(&#39;选择&#39)。VAL()