问题描述:我做的是这样一个效果,当我选择月份时候,我可以用AJAX联动把这个月的天数用下拉菜单显示出来,问题来了,当月份表单onchange事件触发后,我用AJAX获得天数数据innerHTML到指定位置的下拉菜单上,由于做的是分帧(frame),所以查看源代码是显示不出当前页的代码,于是我用火狐的firebug插件查看,<option>标签里的value值是存在的,并且的确是存在的,因为在ie浏览器下可以接受到这个天数的post值,而非ie浏览器都接收不到这个post值,请高手帮忙解决。谢谢。很急

解决方案 »

  1.   

    function createXMLHttpRequest()//定义创建一个跨浏览器函数的开头
    {
    if(window.ActiveXObject)//ActiveXObject对象到找到的时候返回的是真,否则是假
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//这个是使用IE的方法创建XmlHttp
    }
    else if(window.XMLHttpRequest)
    {
    xmlHttp=new XMLHttpRequest();//这个是使用非IE的方法创建XmlHttp
    }
    }另外传递中文时记得编码 urlencode
      

  2.   

    不是这里的问题,ajax的使用是没问题的,这些我的js里有这些判断,只是就是接收不到post值
      

  3.   

    ajax的结果,如果在IE和FF下,有一个能收到,一个收不到。这种情况一般是JS代码不兼容造成的,请打开IE8的JS调试工具,调试前端是否有值,JS是否报错,再后端
      

  4.   

    推荐使用jquery$.post("test.cgi",
           { name: "John", time: "2pm" },
           function(data){
              alert("Data Loaded: " + data);
           } 
    ); 
      

  5.   

    我感觉不是jquery的事情,我用火狐的firebug已经看到<option>里value有值了,只是innerHTML出来的html代码火狐认不出,ie可以
      

  6.   

    AJAX// JavaScript Documentvar http_request=false;
    var rgExp = /bbsName/i;function ajax_get(url){
    //判断浏览器
    if(window.ActiveXObject){
    try{
    http_request=new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
    try{
    http_request=new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    http_request=false;
    }
    }
    }else{
    http_request=new XMLHttpRequest();
    //设置MIME类型,保证为XML格式text/xml
    if(http_request.overrideMimeType){
    http_request.overrideMimeType("text/xml");
    }
    }

    if(http_request){
    http_request.onreadystatechange = process;
    http_request.open("GET",url,true);
    http_request.setRequestHeader("If-Modified-Since",0);
    http_request.send(null);
    }else{
    alert("AJAX引擎创建失败");
    }}function ajax_post(url,data){
    //判断浏览器
    if(window.ActiveXObject){
    try{
    http_request=new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
    try{
    http_request=new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    http_request=false;
    }
    }
    }else{
    http_request=new XMLHttpRequest();
    //设置MIME类型,保证为XML格式text/xml
    if(http_request.overrideMimeType){
    http_request.overrideMimeType("text/xml");
    }
    }

    if(http_request){
    http_request.onreadystatechange=process;
    http_request.open("POST",url,true);
    http_request.setRequestHeader("If-Modified-Since",0);
    http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    http_request.send(data);
    }else{
    alert("AJAX引擎创建失败");
    }}
      

  7.   

    //AJAX相应后的处理函数function getTimes(){
    var i = document.getElementById("month").selectedIndex;
    var month = document.getElementById("month").item(i).value;
    ajax_get("../admin/main.php?action=getDay&type=Cult&month="+month);
    }

    function process(){
    if(http_request.readyState==4){
    if(http_request.status==200){
    text=http_request.responseText;
    //alert(text);
    document.getElementById("m").innerHTML=text;
    }
    }
    }
      

  8.   

    跟踪value。
    要会自己review,楼主加油!
      

  9.   

    楼主加油,
    肯定是兼容性的问题,用jquery 会轻松一些 $("#id").html(""); 就相当于 document.getElementById('id').innerHTML = '';了,当然硬要自己写,就一步一步的去追踪,直到哪一步是正确的再往下走了。慢慢来,肯定会搞定的。
      

  10.   

    终于解决了,验证了之前我说的与AJAX无关,与innerHTML有关,最终发现,我的表单外层套了一层table,使用innerHTML的时候就会出现兼容问题,如果把table去了就一点问题没有了,再次感谢各位达人。散分。
      

  11.   

    还有通过这次教训我又重新捡起了jquery谢谢mu_rain