我做了一个省市连动,AJAX实现,可以实现三级连动效果,
可选择的下拉例表,服务器却使终获得不了VALUE值,selectindex无论选第几项也为0,请问这是怎么回事啊!

解决方案 »

  1.   

    你加载选项是什么事件?是不是onchange?如果是的话你每次都加载,那肯定永远选第0项啦
      

  2.   

    是onchange啊,不过比如选择省份,加载城市的,选择了城市的,加载了区的,
    那城市值应该在服务端接收到啊,在客户端,alert显示值可以看到值确实存在,就是到服务端取不到那怎么解决啊
      

  3.   

    // JScript 文件
             //jb函数会根据不同的浏览器初始化个xmlhttp对象
             function jb()
             {
                var A=null; 
                   try 
                   { 
                       A=new ActiveXObject("Msxml2.XMLHTTP"); 
                   } 
                catch(e)
                { 
                      try 
                       { 
                          A=new ActiveXObject("Microsoft.XMLHTTP"); 
                       }
                 catch(oc)
                { 
                         A=null 
                       } 
                  } 
               if ( !A && typeof XMLHttpRequest != "undefined" ) 
                { 
                   A=new XMLHttpRequest() 
                 } 
               return A 
             }
             
             //下面Go函数是父列表框改变的时候调用,参数是选择的条目
             function Go(objName,obj)
             {
                //得到选择框的下拉列表的value
               var svalue = obj.value;
               for(var i=0;i<obj.options.count;i++)
               {
                obj.selectedIndex
               }
               alert(obj.value);
               var objCity=document.getElementById("HFCity");
                objCity.Value=obj.value;
                alert(objCity.Value);
               alert(obj.selectedIndex);
               obj.value=obj.value;
                //定义要处理数据的页面
                var weburl = "hangye.ashx?id="+svalue+"&type="+objName;
                //初始化个xmlhttp对象
                var xmlhttp = jb();
                //提交数据,第一个参数最好为get,第三个参数最好为true
                xmlhttp.open("get",weburl,true);
               // alert(xmlhttp.responseText);
                //如果已经成功的返回了数据
                xmlhttp.onreadystatechange=function()
                {
                  if(xmlhttp.readyState==4)//4代表成功返回数据
                   {
                      var result = xmlhttp.responseText;//得到服务器返回的数据
                      //先清空DDL_C_PWQe的所有下拉项
                     document.getElementById(objName).length = 0;
                      //给DDL_C_PWQe加个全部型号的,注意是Option不是option
                      document.getElementById(objName).options.add(new Option("请选择","0"));
                      if(result!="")//如果返回的数据不是空
                      {
                         //把收到的字符串按照,分割成数组
                         var allArray = result.split(",");
                        //循环这个数组,注意是从1开始,因为收到的字符串第一个字符是,号,所以分割后第一个数组为空
                         for(var i=0;i<allArray.length;i++)
                         {
                            //在把这个字符串按照|分割成数组
                           var thisArray = allArray[i].split("|");
                            //为DDL_C_PWQe添加条目
                           document.getElementById(objName).options.add(new Option(thisArray[1].toString(),thisArray[0].toString()));//+thisArray[0].toString(),"klsd"));
                         }
                      }
                   }
                }
                //发送数据,请注意顺序和参数,参数一定为null或者""
                xmlhttp.send(null);
             }
      

  4.   

    你在var result = xmlhttp.responseText;//得到服务器返回的数据 
    加一个alert(result)看看result是什么
      

  5.   

    最简单的.如果你的控件不是动态生成的话,
    在服务器端.用Request.Form["下拉菜单NAME属性不要ID哟"]一定能取到值.
      

  6.   

    解决不,不过在后台取selectValue,selectIndex等还是取不出来