我要从前台把选中的checkbox的值传递给后台的方法中...
前台代码如下:
 function checkbtn()
  {
  var inputs = document.getElementsByTagName("input");   alert("for");   var idxarr = new Array();
  for(var i = 0; i < inputs.length; i++)
  {
  
  
  if(inputs[i].type == "checkbox" && inputs[i].checked == true)
  {
        alert(inputs[i].value);         idxarr.push(inputs[i].value);
      }
  }   alert(idxarr.length);
  idxarr.push("2");
  idxarr.push("4");
  idxarr.push("3");
  
  if(idxarr.length == 0)
      {
      alert("少なくとも一つ選択してください!");
      }
  else
  {
          var url="../d0512/btnCheck?idxlist="+idxarr;
          
      if(window.XMLHttpRequest)
      {
          req=new XMLHttpRequest();
      }
      else if(window.ActiveXObject)
      {
          req=new ActiveXObject("Microsoft.XMLHttp");
      }
      
      if(req)
      {
          req.open("GET",url,true);
          req.send(null);
      }
  }   idxarr = new Array();
  }后台的方法:
public String btnCheck() {

String idx = reqPara.getParameter("idxlist");

if(null != idx)
{
String[]  arr = idx.split(",");
}


return IndexJsp + Var + Selectmode;
}
}现在遇到一个很奇怪的问题   就是我在第一次运行时idx可以取到值,但是之后却一直为null,不知道为什么,请各位高手指点..

解决方案 »

  1.   

    设置断点了没有?之后进入后台的方法了吗?使用Ajax提交请求有一个小技巧,就是追加一个时间参数,因为这东西检查两次如果URL相同它就不提交了。
      

  2.   

    你现在的URL是这样的“var url="../d0512/btnCheck?idxlist="+idxarr;”
    能不能把那“;”去掉,放在那根本就是累赘。追加时间参数是为了使每次提交的URL都不同,因为时间是不能能重复的。var url="../d0512/btnCheck?idxlist="+idxarr + "&time=" + new Date();
      

  3.   

    url+"?timeStamp="+new Date().getTime()这种形式....刚在网上查到 = =@汗......那个分号是COPY的时候不小心放上去的....我试一下...
      

  4.   

    形式随便,参数名也随便,只要保证两次的URL不同即可。
      

  5.   

    OK了   非常感谢 IceWee大侠   呵呵呵  散分  这100分都是你的了  太感谢了~~~~~
    这个问题我从昨天下午就搞到现在了  = =@     内牛满面呀~~~T-T