LvMax 发表于 2013-2-7 14:48:55

jQuery Ajax三级联动

$.getJSON版
<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版
<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>


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>
页: [1]
查看完整版本: jQuery Ajax三级联动