我有一个JS的问题:
程序如下:
 <script type="text/javascript" language="javascript">
 var i=0;var j=0;
var arr=[];var string;
function get(text){
  arr[i] = text;
  i++;
}
function a(){
if(j==1){
 go(string);
}else{
for(var x=0;x<i;x++){
  if(x == i-1){
  if(string == null || string.length == 0){
  string = "bs" + x + "=" + encodeURI(arr[x]);
  }else{
  string += "bs" + x + "=" + encodeURI(arr[x]);
  }
  }else{
   if(string == null || string.length == 0){
  string = "bs" + x + "=" + encodeURI(arr[x]) + "&";
  }else{
  string += "bs" + x + "=" + encodeURI(arr[x]) + "&";
  }
  }
  }                                                                                                                                                                                                                    j=1;
go(string);
}
}var xmlhttp;function go(string){
function init(){
 if(window.ActiveXObject){
  xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
  }else if(window.XMLHttpRequest){
  xmlhttp = new XMLHttpRequest();
  }
}
function show(id){
 showid = id;
}
function action(){
  init();
 xmlhttp.onreadystatechange = post;
 xmlhttp.open("POST","2.aspx?" + string,true);
 xmlhttp.send(null);
}
function post(){
if(xmlhttp.readyState == 4)
 {
  if(xmlhttp.status  == 200)
  {
    document.getElementById("show").innerHTML = xmlhttp.responseText;
  }
  else
  {
    document.getElementById("show").innerHTML = "err.";
  }
 }
}
}
}  
    </script>HTML文件:1.htm输入1:<input id="Text1" style="position: relative" type="text" onblur="get(document.getElementById('Text1').value) }"/><br />
输入2:<input id="Text2" style="position: relative" type="text" onblur="get(document.getElementById('Text2').value) }"/> <br />
<input id="Button1" type="button" value="button" onclick="a();"/>
  <div id="show"></div>
以上的代码成功的在Text1和Text2获取值后显示回show里,但是问题是...修改了Text1和Text2后,show还是原来的值...没有改变过..!怎么回事?!如何解决该问题?!急解...!谢谢各位大虾们!///

解决方案 »

  1.   

    应该是缓存, 提交的时个加个时间..
    xmlhttp.open("POST","2.aspx?" + string + "&time=" + new Date().getTime(),true); 
      

  2.   

    xmlhttp.responseText; 打印出来过看是什么东西了么 看看返回的是不是空
      

  3.   

    xmlhttp.responseText,这个有值没有?
      

  4.   


    不是空的...我用alert试过!
      

  5.   

    建议楼主一步一步使用alert来,看看哪个地方出错 另外网址后面是要跟个 new Date() 以防被缓存
      

  6.   

    不可能吧,xmlhttp.responseText有值得话那就是document.getElementById("show").innerHTML赋值有问题了!!!
    alert(document.getElementById("show").innerHTML)看有这个对象没!!
      

  7.   


    没问题的...我的意思是: 它应该是一连串的GET...但无论你在后面添加多少个参数值...它还是原来的参数...!
      

  8.   

    innerHTML是只读对象,不可写
    用innerText
      

  9.   

    楼主,你把变量i,j都设成全局变量,都会对你的结果造成影响,比如说j,当你点第二次的时候就等于1了,执行函数a()的时候就不会去重新组成新的参数串。那肯定不能取到新的值;
    还有我不大清楚你在2.aspx页面里面是怎么取得参数值的,因为变量i,arr是全局的,所以数据arr的长度没点一次就增加2,如果你在后台只取前两个,那值也是不会改变的。
    还有不知道你贴的代码是否齐全,你调用action()方法的地方都没看见!!怎么发送过去的???
      

  10.   

    我稍微改了下楼主的代码,如下:
    <script type="text/javascript" language="javascript"> 
    var i=0;var j=0; 
    var arr=[];var string; 
    function get(text)

    arr[i] = text; 
    i++; 

    function a()

    string = "";
    if(j==1)

    go(string); 
    }
    else

    for(var x=0;x <i;x++)

    if(x == i-1)

    if(string == null || string.length == 0)

    string = "bs" + x + "=" + encodeURI(arr[x]); 
    }
    else

    string += "bs" + x + "=" + encodeURI(arr[x]); 

    }
    else

    if(string == null || string.length == 0)

    string = "bs" + x + "=" + encodeURI(arr[x]) + "&"; 
    }
    else

    string += "bs" + x + "=" + encodeURI(arr[x]) + "&"; 


    }
    //j=1; 
    go(string); 

    i=0;
    }  var xmlhttp;  function go(string)


    if(window.ActiveXObject)

    xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
    }
    else if(window.XMLHttpRequest)

    xmlhttp = new XMLHttpRequest(); 
    }
    action();

    function show(id)

    showid = id; 

    function action()

    //init(); 
    xmlhttp.onreadystatechange = post; 
    xmlhttp.open("POST","WebForm11.aspx?" + string,true); 
    xmlhttp.send(null); 

    function post()

    if(xmlhttp.readyState == 4) 

    if(xmlhttp.status  == 200) 

    document.getElementById("show").innerHTML =""; 
    document.getElementById("show").innerHTML = xmlhttp.responseText; 

    else 

    document.getElementById("show").innerHTML = "err."; 



    在后台
    string str = string.Empty;
    str += Request.QueryString["bs0"];
    str += Request.QueryString["bs1"];
    Response.Write(str);就可以改变了。