优秀的编程知识分享平台

网站首页 > 技术文章 正文

Bootstrap Table 点击下拉框进行AJAX请求(update

nanyue 2024-09-06 20:15:13 技术文章 11 ℃

昨天在测试的时候,发现第一次点击下拉框可以进行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>"
                        );
                    },
                },
最近发表
标签列表