AJAX实现的简单的下拉框二级级联

      AJAX实现的简单的无刷新效果,页面中有两个下拉框,当第一个下拉框改变时,提交请求到后台,查找到对应的数据,添加到第二个下拉框列表里。代码如下:

<html>
 <head>
  <script type="text/javascript">


   //Ajax实现下拉框二级级联,根据第一个下拉框的值改变第二个下拉框内的列表

   //根据浏览器的类型,创建xmlHttpRequest对象
   function createXmlHttpRequest()
    {
        if(window.ActiveXObject)
        {
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if( window.XMLHttpRequest())
        {
            return new XMLHttpRequest();
        }    
    }
    var xmlHttpRequest;
  
    //异步响应函数 
    function search(para)
    {
        var url="/search?para="+para;     //后台请求的路径
      
        xmlHttpRequest=createXmlHttpRequest();
      
        xmlHttpRequest.onreadystatechange=callback;   //将回调函数注册给状态改变事件
      
        xmlHttpRequest.open("GET",url,true);
      
        xmlHttpRequest.send(null);
          
    }    
   
   //回调函数
    function callback()
    {     
         var dlCity=document.getElementById("city");

 

         //请求被成功响应,已接收到结果
         if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200)
         {                    
             var result=xmlHttpRequest.responseText;          //返回的结果字符串 
             //var result = "哈尔滨|大庆||鹤岗|佳木斯|牡丹江"; 
                        
            var cityArray= result.split("|");   //返回的结果字符串中,值之间是以|分隔的,所以先拆分成数组
            var count = cityArray.length; 
            dlCity.length=0;   //先将下拉列表框清空
            for (var i = 0; i <count; i++) 
            {   
                dlCity.options.add(new Option(cityArray[i], cityArray[i]));   //将结果循环添加到下拉列表中
            }  
           
         }
         else
         {
             dlCity.length=0;
             dlCity.options.add(new Option("请等待...","-1"));
         }
        
    }
    
 //下拉框改变事件
 function changeCityOptions()
 {
     var dlProvince=document.getElementById("province");
     var dlCity=document.getElementById("city");
     dlCity.length=0;
     if(dlProvince.value==-1)
     {    
         dlCity.options.add(new Option("城市列表","-1"));
     }
     else
     {
         search(dlProvince.value);
     } 
    return;   
 }
  </script>
</head>
<body>
 <select name="province"  id="province" οnchange="changeCityOptions()">
  <option value="-1">选择省份</option>

  <option value="1">黑龙江</option>

  <option value="2">吉林</option>
 </select>
 <select name="city" id="city">
  <option value="-1">城市列表</option>
 </select>
</body> 
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值