葬空吟 2022-08-19 11:09 采纳率: 61.2%
浏览 73
已结题

bootstrap-select默认值设置

img

两个bootstrap-select,逻辑是:
1.进入页面-自动触发函数1运行Ajax查询第一个select数据
2.选择第一个select的选项后,触发函数2带着参数运行Ajax查询第二个select数据
3.选择第二个select的选项后,触发函数3带着参数运行Ajax查询一个table的数据
需求:想要在进入页面的时候自动触发函数1并选择第一个select的第一个选项,之后再自动触发函数2选择第二个select的第一个选项,再自动触发函数3查询出table的数据
现在可以进行到第二步,但是函数2获取不到应该携带的参数,并且,直接点击第一个select框的第一个选项还无法触发click事件,需要点第二项才行

j's代码如下:

// 最开始的工厂选择,进入页面自动运行此函数
function getfactory() {
    console.log("进入工厂筛选");
    $.ajax({
        type: "POST",
        // cache: false,
        url: "/api/param/factoryselect",
        dataType: "Json",
        async: true,
        success: function (data) {
            console.log(data, '1');
            for (var i = 0; i < data.length; i++) {
                if (i === 0) {
                    $('#factory').append("<option id ='factory" + i + "' value=" + data[i].工厂 + " selected \>" + data[i].工厂 + "</option>");
                } else {
                    $('#factory').append("<option id ='factory" + i + "' value=" + data[i].工厂 + "\>" + data[i].工厂 + "</option>");
                }
            };
            $('#factory').selectpicker('refresh');

            $('#factory').selectpicker('render');
        },
    });


}
// 最开始的车间选择,选择完工厂后自动运行此函数
function getshop(obj) {
    // 清空原有的options
    $('#shop.selectpicker').empty();
    // 重置刷新options
    $('#shop').selectpicker('refresh');
    $('#shop').selectpicker('render');
    // 获取工厂选择的值
        var value = obj.options[obj.selectedIndex].value;
        factory = { 'factory': value }
    console.log(value, "进入车间筛选");
    $.ajax({
        type: "POST",
        url: "/api/param/factoryselect",
        data: factory,
        async: true,
        success: function (data) {
            shop = data
            for (var i = 0; i < shop.length; i++) {
                if (i === 0) {
                    $('#shop').append("<option id ='shop" + i + "' value=" + shop[i].车间 + " selected \>" + shop[i].车间 + "</option>");
                } else {
                $('#shop').append("<option id ='shop" + i + "' value=" + shop[i].车间 + "\>" + shop[i].车间 + "</option>");
                }
            };
            $('#shop').selectpicker('refresh');
            $('#shop').selectpicker('render');
        },
    });
}
function getprocedure(obj) {
    $('#maptable').empty();
    console.log($('#factory').val(), '80');
    console.log(obj, '81');
    var value = [];
    var procedures = [];
    var procedure = [];
    var equipment = [];
    var maxnum = [];
        value = obj.options[obj.selectedIndex].value;
        shop = {
            'factory': $('#factory').val(),
            'shop': value,
        }
    $.ajax({
        type: "POST",
        url: "/api/param/factoryselect",
        data: shop,
        async: false,
        success: function (data) {
            console.log(data, 'shop 69');
            for (var i = 0; i < data.length; i++) {
                procedures.push(data[i].工序);
                equipment.push({ "工序": data[i].工序, "工位": data[i].工位 })
            }
            procedure = Array.from(new Set(procedures))
            console.log(procedure, 'procedure 75');
            console.log(equipment, 'equipment 78');
            for (var i = 0; i < procedure.length; i++) {
                $('#maptable').append("<tr id='procedures" + i + "'> <td style='background-color: #003664; color: #ffffff;' id='procedure" + i + "' value='" + procedure[i] + "'>" + procedure[i] + "</td></tr>");
            };
            for (var i = 0; i < procedure.length; i++) {
                for (var j = 0; j < equipment.length; j++) {
                    if (procedure[i] === equipment[j].工序) {
                        $('#procedures' + i).append("<td id='equipment" + j + "' value='" + equipment[j].工位 + "'>" + equipment[j].工位 + "</td>");
                    }
                };
            };
        },
    });


}

html代码如下:

//  select框
<div class="row">
            <div class="col-xs-2">
                <div class="input-group">
                    <span class="input-group-addon">工厂</span>
                    <!-- onchange="getshop(this)" 选择后触发函数并传参 -->
                    <select id="factory" data-size="6" name="factory" title="请选择工厂"
                        class="form-control selectpicker show-tick" onchange="getshop(this)"></select>
                </div>
            </div>
            <div class="col-xs-2">
                <div class="input-group">
                    <span class="input-group-addon">区域</span>
                    <select id="shop" data-size="6" name="shop" title="请选择区域"
                        class="form-control selectpicker show-tick" onchange="getprocedure(this)"></select>
                </div>
            </div>
        </div>
//  table 表
                <div class="row">
                    <table id='maptable'>
                    </table>
                </div>

  • 写回答

2条回答 默认 最新

  • 雾里桃花 2022-08-19 11:11
    关注

    代码贴一下

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月21日
  • 修改了问题 8月19日
  • 创建了问题 8月19日

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记