function getRadioList(tag, pageNum, pageSize){
ajaxHelper.ajaxFun({
type: "post",
url: "/",
data: data,
contentType:"application/json",
async : false,
successHandler: function (obj) {
if (obj.code == 0) {
if (obj.data && obj.data.length > 0) {
$.each(obj.data,function (i,n) {
if (pageNum == 1) {//第一页
let radioString = '<div class="radioOne"';
radioString +='><input type="radio" name="" lay-filter="inputName" lay-skin="primary" title="搜索框显示的值" value="搜索框的值"';
radioString += '></div>';
$(tag).parent().append(radioString);
}
});
if (pageNum == 1) {
//第一页,基于layerui的流加载
layui.use('flow', function() {
var flow = layui.flow;
flow.load({
elem: '#'+mc //流加载容器
, scrollElem: '#'+mc //滚动条所在元素,一般不用填,此处只是演示需要。
, done: function (page, next) { //执行下一页的回调
//模拟数据插入
setTimeout(function () {
let pageTotal = Math.ceil(obj.data.total/pageSize);
if (pageNum * pageSize <= obj.data.total) {//不是最后一页
getRadioList(tag, page + 1, pageSize);
var lis = [];
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), page < pageTotal); //假设总页数为 10
}
}, 500);
}
});
});
}
layui.use(['form'], function() {
var form = layui.form;
form.render();
});
}
}
},
errorHandler: function (data) {
//加载数据出错提示
}
});
}
此处仅为大致实现逻辑,具体实现代码没有贴出
实现逻辑:构造一个点击的div,点击时切换下拉列表的显示隐藏。首次加载时,拼接一个input输入框和一组raido或者checkbox。这样就形成了可输入搜索的单选或者多选下拉框,可以采用oninput监控输入值。