小弟做了一个表格,在ID列上做了checkbox,value为当行的ID,然后在JS中用document.getElementById("c").value获得它的值。<input type="checkbox" name="c" value="{id}" onclick="getcheckboxvalue()">
<script>
   function getcheckboxvalue(){
     var a=document.getElementById("c").value;
     window.location.href="getNewsList.do?checkboxvalue="+a;
}
</script>我想当点击选中一个checkbox时,用JS函数把checkbox的value中的id传到后台。。我在后台用request.getParameter("checkboxvalue");却怎么也取不到值。请问各位大侠,该怎么取,是我事件用的有问题吗?

解决方案 »

  1.   

    你这里只能取一个值。因为你做了onclick处理。你要选中,那就必须有点击。这样的话你可以这么写。
    <input type="checkbox" name="c" value="{id}" onclick="getcheckboxvalue(this.value)">JS代码这么写
    <script>
      function getcheckboxvalue(val){
      
      window.location.href="getNewsList.do?checkboxvalue="+val;
    }
    </script>这样你在后台可以用request.getParameter("checkboxvalue");进行接收值了。。
    看来楼主没明白getElementById的意思了。你要取值的这个控件一定在有ID才可以取到的。。
      

  2.   

    或者:
    把你的这段html 。<input type="checkbox" name="c" value="{id}" onclick="getcheckboxvalue()">
    改成 。<input type="checkbox" id="c" value="{id}" onclick="getcheckboxvalue()">就行了
      

  3.   

    同意一楼的,而且楼主应该在checkbox里加id,你用document.getElementById("c").value,但"c"只是个Name,而不是id,这样怎么会取得到值呢?
      

  4.   

    回3楼的兄弟,上面这段代码,是临时在发贴的时候写的,我在我的代码里是有ID属性的.我也按2楼的兄弟的方法改了,可是现在报我那个函数没有定义,我开始以为我的JS位置放错了.但是无论把它放到INPUT上面还是下面,都不可以.到底是怎么回事呢?
      

  5.   

    checkbox基本不用value 只判断是否选中
    客户端:
    if (form1.c.checked){
     do something
    }
    服务器:
    if (Request.Form("c").Item=="on"){
     do something
    }
      

  6.   

    lz是想将checkbox的一系列值 传递给另一个页面 还是某一个值?如果是某一个值的话很简单。如果是checkbox的一系列值,一般要用post,不是用get。用get会丢失参数。
    还有lz的id和name取值方法要正规一点吧。在传之前先alert看看。是单个值还是数组值。
      

  7.   

    <input id ="cb" name="c" type="checkbox" value="${info.id}" onclick="passcheckboxvalue(this.value)">
    function passcheckboxvalue(val){
          alert("pppp"+val);//这里是可以拿到值的
    }
    function checkboxupdate(val){
        var val=passcheckboxvalue(val);//这里拿不到,为什么呢?
        alert("vvvvvv"+val);
    window.location.href="tomodifyNews.do?method=tomodifyNews&newsid="+val;
    }
      

  8.   

    你在标签中调用的是onclick="passcheckboxvalue(this.value)">,所有当然拿不到了。checkboxupdate没被调用,怎么会会有val呢!
      

  9.   

    <input id ="cb" name="c" type="checkbox" value="${info.id}" onclick="passcheckboxvalue(this.value)">
    function passcheckboxvalue(val){
      alert("pppp"+val);//这里是可以拿到值的
    }
    function checkboxupdate(val){
    var val=passcheckboxvalue(val);//这里拿不到,为什么呢?
    alert("vvvvvv"+val);
    window.location.href="tomodifyNews.do?method=tomodifyNews&newsid="+val;
    }
    <input type="button" value="修改" onclick="checkboxupdate()"/>
    回楼上的兄弟,怪我代码没贴全.
      

  10.   

    大哥:来看看你的调用<input type="button" value="修改" onclick="checkboxupdate()"/>
    在看看你的checkboxupdate
    function checkboxupdate(val){
    ...
    }
    看出来了吧!
      

  11.   

    <input id ="cb" name="c" type="checkbox" value="${info.id}" onclick="passcheckboxvalue(this.value)">
    function passcheckboxvalue(val){
      alert("pppp"+val);//这里是可以拿到值的
    }
    function checkboxupdate(){
    var val=passcheckboxvalue(val);//这里拿不到,为什么呢?
    alert("vvvvvv"+val);
    window.location.href="tomodifyNews.do?method=tomodifyNews&newsid="+val;
    }
    <input type="button" value="修改" onclick="checkboxupdate()"/>
    改了,这里还是拿不到值alert("vvvvvv"+val);
      

  12.   

    你要在checkboxupdate取出val的值?val在checkboxupdate中并没用定义啊,怎么能拿出来呢!
    非要在checkboxupdate中拿val 可以这样写:
    <input id ="cb" name="c" type="checkbox" value="真是费劲" onclick="passcheckboxvalue(this.value)">
    <input type="button" value="修改" onclick="checkboxupdate()"/>
    <script type="text/javascript">
    function passcheckboxvalue(val) {
    alert("pppp" + val);//这里是可以拿到值的
    }
    function checkboxupdate() {
    //var val = passcheckboxvalue(val);//这里拿不到,为什么呢?
    //alert("vvvvvv" + val);
    var val = document.getElementById("cb").value;
    alert(val);
    // window.location.href = "tomodifyNews.do?method=tomodifyNews&newsid="
    // + val;
    }
    </script>
      

  13.   

    奶牛兄:如果直接在  function checkboxupdate() {
            //var val = passcheckboxvalue(val);//这里拿不到,为什么呢?
            //alert("vvvvvv" + val);
            var val = document.getElementById("cb").value;
            alert(val);
        //    window.location.href = "tomodifyNews.do?method=tomodifyNews&newsid="
            //        + val;
        }
    这里用 var val = document.getElementById("cb").value;来取我就不用费这么大劲了.
    我之所以定义function passcheckboxvalue(val){
      alert("pppp"+val);//
    }
    是因为,checkbox肯定不是一个咯,我根据
    <input id ="cb" name="c" type="checkbox" value="${info.id}" onclick="passcheckboxvalue(this.value)">
    里的this.value来获得,当我选哪一个的时候,就得到它的value.
      

  14.   


    <input id ="cb" name="c" type="checkbox" value="${info.id}" onclick="passcheckboxvalue(this.value)">
    function passcheckboxvalue(val){
      alert("pppp"+val);//这里是可以拿到值的
    }
    function checkboxupdate(){
    var val=passcheckboxvalue(val);//这里拿不到,为什么呢? 这里的val不知道是哪里来的,你没有传参数
    alert("vvvvvv"+val);
    window.location.href="tomodifyNews.do?method=tomodifyNews&newsid="+val;
    }
    <input type="button" value="修改" onclick="checkboxupdate()"/>----------------------------------------------------------------
    <input id ="cb" name="c" type="checkbox" value="${info.id}" onclick="passcheckboxvalue(this.value)">
    function passcheckboxvalue(val){
      alert("pppp"+val);//这里是可以拿到值的,这里虽然可以取值,但是你没有把值保存起来,也没有传递给其它方法和属性
    }
    function checkboxupdate(){
    var checkBoxVal = "";
    var val= document.getElementsByName("c");
    for (var i = 0; i < val.length; i++) {
         if (val.checked) {
             checkBoxVal += val.value + "";
         }
    }
    alert("vvvvvv"+checkBoxVal);
    window.location.href="tomodifyNews.do?method=tomodifyNews&newsid="+checkBoxVal;
    }
    <input type="button" value="修改" onclick="checkboxupdate()"/>
      

  15.   

    那就声明个全局变量了
    var val = null; 
    <script type="text/javascript">
    var sVal = "";
    function passcheckboxvalue(val) {
    sVal += val+";";
    alert(sVal);
    }
    function checkboxupdate() {
    alert(sVal);
    }
    </script>
    </head>
    <body>
    <input id="cb" name="c" type="checkbox" value="真是费劲1"
    onclick="passcheckboxvalue(this.value)">
    <input id="cb" name="c" type="checkbox" value="真是费劲2"
    onclick="passcheckboxvalue(this.value)">
    <input id="cb" name="c" type="checkbox" value="真是费劲3"
    onclick="passcheckboxvalue(this.value)">
    <input id="cb" name="c" type="checkbox" value="真是费劲4"
    onclick="passcheckboxvalue(this.value)">
    <input type="button" value="修改" onclick="checkboxupdate()" />
      

  16.   

    奶牛兄,你真幽默啊~~~真是费劲1,真是费劲2,真是费劲3,真是费劲4....教我有这么费劲吗?-_-~!谢谢你,一直帮我,直到解决问题.我代表CCTV,CHINAV,代表祖国和人民感谢你```!!哈哈