昨天在测试的时候,发现第一次点击下拉框可以进行AJAX请求获取清单,但是选择以后,发现值并没有传递,怀疑是off("click")导致下一步Change的Event没有执行,所以更改如下,当click后立即off, 然后结束后再open,这样就可以获取选择的值了
{
field: "rpt_sn",
title: "Report List",
switchable: true,
sortable: false,
align: "center",
valign: "middle",
halign: "center",
events: {
"click .act_task_list": function (e, value, row, index) { //点击下拉框动作
$("select[id='act_task_list" + index + "']").off("click"); //取消每次的点击,避免重复加载
var slic = row.slic_slic;
$.ajax({
type: "POST",
url: "json/inb_json.php",
contentType: "application/x-www-form-urlencoded", // 如果是post必须定义
dataType: "json",
data: {
action: "q_rpt_list",
slic: slic,
},
cache: false,
async: false, //重要
success: function (data) {
for (var i = 0; i < data.length; i++) {
$("select[id='act_task_list" + index + "']").append(
"<option value=" + data[i].rpt_sn + ">" + data[i].rpt_sn + "</option>"
);
}
},
});
$("select[id='act_task_list" + index + "']").on("click"); //打开click, 以便下面的change后可以获取值
},
"change .act_task_list": function (e, value, row, index) { //下拉框改变后,刷新bootstrap table数据,否则getData会获取不到
value = e.currentTarget.value;
$("#full_rpt_list").bootstrapTable("updateCell", {
index: index,
field: "rpt_sn",
value: value,
reinit: false,
});
},
},
formatter: function (value, row, index) {
return (
"<select class='form-control act_task_list' name='act_task_list' id='act_task_list" +
index + "'></select>"
);
},
},