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数据是否完整的代码