jQuery Ajax三级联动

本文介绍如何使用jQuery实现三级级联下拉框功能,包括通过HTTP GET请求加载JSON数据并动态更新下拉框选项。同时展示了两种实现方式:$.getJSON与$.ajax。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$.getJSON版

Javascript代码
    <script type="text/javascript">  
            $(document).ready(function(){  
                var addSelOption = function(jq) //方法addSelOption : 为匹配对象添加一项"请选择", jq : jQuery对象  
                {  
                    //创建option对象,并设置文本为"请选择",value值为-1  
                    var opt = $("<option/>").text("请选择").attr("value", "-1");  
                    //将option对象添加到select中  
                    jq.append(opt);  
                }  
                //获取请求的URL  
                var requestUrl = "/TheOneHRWeb/handler/GetBranchOne.aspx";  
                /* 
                    通过 HTTP GET 请求载入 JSON 数据 
                    json : JSON对象 
                */  
                $.getJSON(requestUrl, function(json){  
                    //遍历JSON对象  
                    $(json).each(function(){  
                        //创建option对象并设置相应的文本值和value值  
                        var opt = $("<option/>").text(this.branchName).attr("value", this.branchID);  
                        //将option对象添加到匹配的jQuery对象中  
                        $("#branchOne").append(opt);  
                    });  
                });  
                $("#branchOne").change(function(){  
                        //获取请求的URL  
                        var requestUrl = "/TheOneHRWeb/handler/GetBranchTwo.aspx";  
                        //获取下拉菜单的value值  
                        var branchId = $(this).val();  
                        if(branchId != "-1")  
                        {  
                            // {"branchID" : branchId} : 传入参数  
                            $.getJSON(requestUrl, {"branchID" : branchId}, function(json){  
                                $("#branchTwo").empty();  
                                //$("#branchTwo").append($("<option/>").text("请选择").attr("value", "-1"));  
                                addSelOption($("#branchTwo"));  
                                //遍历JSON对象  
                                $(json).each(function(){  
                                    //创建option对象并设置相应的文本值和value值  
                                    var opt = $("<option/>").text(this.branchName).attr("value", this.branchID);  
                                    //将option对象添加到匹配的jQuery对象中  
                                    $("#branchTwo").append(opt);  
                                });  
                               $("#branchTwo").change(function(){  
                                    //获取下拉菜单的value值   
                                    var branchId = $(this).val();   
                                    //获取请求的URL  
                                    var requestUrl = "/TheOneHRWeb/handler/GetBranchThird.aspx";  
                                    if(branchId != "-1")  
                                    {   
                                        $.getJSON(requestUrl, {"branchID" : branchId}, function(json){  
                                            $("#branchThree").empty();  
                                            addSelOption($("#branchThree"));  
                                            //遍历JSON对象  
                                            $(json).each(function(){  
                                                //创建option对象并设置相应的文本值和value值  
                                                var opt = $("<option/>").text(this.branchName).attr("value", this.branchID);  
                                                //将option对象添加到匹配的jQuery对象中  
                                                $("#branchThree").append(opt);  
                                            });  
                                        });  
                                    }   
                                    else  
                                    {  
                                        $("#branchThree").empty();  
                                        addSelOption($("#branchThree"));  
                                    }  
                               });  
                            });  
                        }  
                        else  
                        {  
                            $("#branchTwo").empty();  
                            addSelOption($("#branchTwo"));  
                            $("#branchThree").empty();  
                            addSelOption($("#branchThree"));  
                        }               
                    });  
            });  
        </script>  

$.ajax版
Javascript代码
<script type="text/javascript">  
        $(document).ready(function(){  
            var addSelOption = function(jq) //方法addSelOption : 为匹配对象添加一项"请选择", jq : jQuery对象  
            {  
                //创建option对象,并设置文本为"请选择",value值为-1  
                var opt = $("<option/>").text("请选择").attr("value", "-1");  
                //将option对象添加到select中  
                jq.append(opt);  
            }  
            //添加span节点并添加loadding的gif图片  
            var loadImg = function(br){  
                $("#loaddingImg").find("img").remove();  
                var oSpan = $("<span id='loaddingImg'><img src='/TheOneHRWeb/images/loadding_indicator.gif' /></span>");  
                br.after(oSpan);  
            }  
            var requestUrl = "/TheOneHRWeb/handler/GetBranchOne.aspx";  
            $.ajax({  
                //type : "get", //默认为get  
                dataType : "json",  
                url : requestUrl,  
                success : function(json){  
                    $(json).each(function(){  
                        var opt = $("<option/>").text(this.branchName).attr("value", this.branchID);  
                        $("#branchOne").append(opt);  
                    });  
                    $("#branchOne").change(function(){  
                        var branchId = $(this).val();  
                        if(branchId != "-1"){  
                            var requestUrl = "/TheOneHRWeb/handler/GetBranchTwo.aspx";  
                            $.ajax({  
                                dataType : "json",  
                                url : requestUrl,  
                                //传入的参数  
                                data : "branchID=" + branchId,  
                                //发送请求前加载loadding的gif图片  
                                beforeSend : loadImg($("#branchOne")),  
                                success : function(json){  
                                    //删除gif图片的span节点  
                                    $("#loaddingImg").remove();  
                                    $("#branchTwo").empty();  
                                    addSelOption($("#branchTwo"));  
                                    $(json).each(function(){  
                                        var opt = $("<option/>").text(this.branchName).attr("value", this.branchID);  
                                        $("#branchTwo").append(opt);  
                                    });  
                                }  
                            });  
                        }  
                        else{  
                            $("#branchTwo").empty();  
                            addSelOption($("#branchTwo"));  
                            $("#branchThree").empty();  
                            addSelOption($("#branchThree"));  
                        }  
                    });  
                    $("#branchTwo").change(function(){  
                        var branchId = $(this).val();  
                        if(branchId != "-1"){  
                            var requestUrl = "/TheOneHRWeb/handler/GetBranchThird.aspx";  
                            $.ajax({  
                                dataType : "json",  
                                url : requestUrl,  
                                data : "branchID=" + branchId,  
                                beforeSend : loadImg($("#branchTwo")),  
                                success : function(json){  
                                    $("#loaddingImg").remove();  
                                    $("#branchThree").empty();  
                                    addSelOption($("#branchThree"));  
                                    $(json).each(function(){  
                                        var opt = $("<option/>").text(this.branchName).attr("value", this.branchID);  
                                        $("#branchThree").append(opt);  
                                    });  
                                }  
                            });  
                        }  
                        else{  
                            $("#branchThree").empty();  
                            addSelOption($("#branchThree"));  
                        }  
                    });  
                }  
            });  
        });  
    </script> 
Html代码
    I级机构: <select id="branchOne">  
                            <option selected="selected" value="-1">请选择</option>  
                        </select>  
            II级机构:<select id="branchTwo">  
                                <option selected="selected" value="-1">请选择</option>  
                            </select>  
             III级机构:<select id="branchThree">  
                                <option selected="selected" value="-1">请选择</option>  
                            </select>  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值