BOOTSTRAP-SUGGEST 源代码修改 实现二级联动

来源于:  https://www.freesion.com/article/9239992986/

 

 

bootstrap-suggest 源代码修改 实现二级联动

标签: suggest  源代码  前端

 

bootstrap-suggest 源代码修改 实现二级联动

在使用bootstrap-suggest的时候,我发现一个问题,页面载入以后,它所显示的下拉框是无法更改的,

 

但是需求上需要加上一个二级类目,二级类目改变的时候,产品名称的下拉框也随之改变

 

js代码

function suggest(data){
    var testBsSuggest=$("#produtName").bsSuggest({
        getDataMethod:"data",
        showBtn: true,
        indexId: 1,
        indexKey:0,
        data:data
        }).on("onDataRequestSuccess",function(e,result){
            //console.log("onDataRequestSuccess: ",result)

        }).on("onSetSelectValue",function(e,keyword){
            //console.log("onSetSelectValue: ",keyword)

        }).on("onUnsetSelectValue",function(e){
            //console.log("onUnsetSelectValue")

        });
}
$(document).ready(function(){
    $("#produtName").focus(function(){ 
        $.ajax({
            url: "<%=root%>/queryProduct.do",
            type: "POST",
            dataType: "json",
            data:{
                oneCategoryId:$("#oneCategoryId").val(),
                twoCategoryId:$("#twoCategoryId").val(),
            },
            cache:false, 
            success: function (data) {
                suggest(data);
               }
        });
    });
});
 

逻辑,捕捉产品名称的获得焦点事件,获取二级目录的信息,传到后台去获取相应的产品名称列表,然后通过suggest方法将产品名称列表显示出来。

但是!!!!上面也说了,suggest显示出来的值,无法改变,就算传入的data改变了,它所显示的信息依然不会改变,所以我们需要修改源代码

bootstrap-suggest.min.js

打开这个js,去百度一下在线代码格式化,将代码复制进去格式化一下,然后在黏贴过来,
修改的代码如下
这里写图片描述

在237行添加s.data=null;
重置它的data,这样它会重新去获取suggest方法中传入的data

实现了我想要的功能
这里写图片描述

这里写图片描述

如果平台是会判断session失效时间的,最好在ajax那里加判定data数据是否完整的代码

 
版权声明:本文为hji7365039原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hji7365039/article/details/77748117
 
 
 
posted @ 2023-05-30 22:50  苦行者的刀  阅读(263)  评论(0)    收藏  举报