ajax+jquery三级联动

首先要明白什么是三级联动。举个例子来说:当你未选择省份的时候,后面的市区和县级的下拉框应该是没有内容的。只有当前一个下拉框有选择的省份或者市,才可以选择后面的。项目中,这些值也是数据字典存储在数据库中的。本例子从数据库中读取省市县。不多说了,直接上代码,看注释吧,挺详细的。。

html代码:

 <body>
    省份:<select id="province">
      <option>请选择</option>
    </select>
    市区:<select id="city">
      <option>请选择</option>
    </select>
    县级:<select id="county">
      <option>请选择</option>
    </select>

  </body>

jquery代码:

//初始化下拉框
    function initValue(pid,flg){
       $.ajax({
          type:"post",
          url:"CityServlet",//查询处理数据的servlet
          data:{
              "pid":pid,//pid为父id
              "doWhat":"getInfo"
          },
          dataType:"json",//返回为json类型,返回的是json字符串
          success:function(data){
             var $select=$("#"+flg);//获取flg的下拉框
             $.each(data.list,function(index,current){
               var $option=$("<option></option>");//动态添加下拉框选项
               $option.prop("value",current.id);//给下拉框选项设置id,以便下一个下拉框根据选中的id作为父id查询
               $option.html(current.name);//给下拉框赋值
               $select.append($option);
             })
          },
          error:function(){
             alert("AJAX请求错误!");
          }    
       })

    }

 

$(function(){
       initValue("0", "province");
       //当选择省份的时候
       $("#province").change(function(){
          $("#city option:eq(0)").remove();//先把市的下拉框remove
          $("#county option:eq(0)").remove();//先把县的下拉框remove
          var pid=this.value;
          if("请选择"==pid){
             return;
          }
          initValue(pid, "city");
       })
       //当选择市级的时候
       $("#city").change(function(){
          $("#county option:eq(0)").remove();
          var pid=this.value;
          if("请选择"==pid){
            return;
          }
          initValue(pid, "county");
       })
    
    })

  转载请注明出处,谢谢。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值