jquery 多级联动下拉列表含(数据模型)

方法

复制代码
/**
 * 级联
 * 联动
 * @param url:访问json数据的地址
 * @param param:参数
 * @param levelIds:页面下拉标签数组,为联动级数
 * @private
 */
function _yh_linkage(url,params, levelIds){
    _yh_postRequest(url,params,function(response){
        //console.log(response);
        /**
         * 初始下拉列表数据
         * @param obj
         * @returns {jQuery}
         */
        function objInit(obj){
            return $('#'+obj).html('<option value="">请选择</option>');
        }
        selectToChildOption(response,levelIds,0);

        /**
         * 递归联动初始数据
         * @param object:数据
         * @param levelIds:联动下拉框id数组
         * @param levelIndex:第几级下拉列表
         */
        function selectToChildOption(object,levelIds,levelIndex){
            for (var index in levelIds) {
                if(index<levelIndex) continue;
                objInit(levelIds[index]);
            }
            if( object == null  ) return ;
            if( levelIds == null || levelIds.length <= levelIndex ) return ;
            if( object != null && object.list != null ) {
                $.each(object.list,function(i,o){
                    $('#'+levelIds[levelIndex]).append('<option value="'+o.id+'" >'+o.name+'</option>');
                });
                $('#'+levelIds[levelIndex]).change(function() {
                    var n = $('#'+levelIds[levelIndex]).get(0).selectedIndex-1;
                    selectToChildOption(object.list[n], levelIds, levelIndex + 1);
                });
            }
        }
    });
}
复制代码

 

需要用到的另一函数

复制代码
/**
 * post请求
 * @param url
 * @param params
 * @param callbackfunciton:回调函数
 * @returns
 */
function _yh_postRequest(url,params,callbackFunction){
    //console.log(params);
    if(params == null ){
        params = {};
    }
    $.post(url,params,function(response){
        if( callbackFunction != null)
            callbackFunction(response);
    });
}
复制代码

 

java

复制代码
public class TKY {
    private String id;
    private String name;
    private boolean select= false;//是否默认选中
    private List<TKY> list = new ArrayList<>();
    
    public TKY(String id ,String name){
        this.id = id;
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public List<TKY> getList() {
        return list;
    }

    public void addList(TKY t) {
        list.add(t);
    }

    public boolean isSelect() {
        return select;
    }

    public void setSelect(boolean select) {
        this.select = select;
    }
    
}
复制代码

 

posted @   243573295  阅读(1372)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2016-08-04 html-fieldset线中嵌套字符
点击右上角即可分享
微信分享提示