<% for(Object[] o:rights){ %>
  <tr>
  <td class="tdEditLabel"></td>
  <td bgcolor="#D4E4EB" class="tdEditLabell" id="df"><%=o[1]%></td>
<td bgcolor="#D4E4EB" class="tdEditLabel">
<input type="checkbox" id="right_id"+<%=o[0]%> name="right_id"+<%=o[0]%> <%if(o[2]!=null){%> checked ; value ="1"; <%}else {%> value="0" <%;}%> >
<input type="hidden" name="right_ids" <% if。{ %> value ="1"<%} %> >

</td>
  </tr> 
<%} %>关于<input type=checkBox 选中后value自动赋值的判断
就是隐藏域的input  如何在value="1" 前面加入上一个input是否选中后  加入JS 貌似值不好给
求达人 求解~~~~~~

解决方案 »

  1.   


    <input type="checkbox" id="right_id<%=o[0]%>" name="right_id<%=o[0]%>" <%=(o[2]!=null)?"checked value=\"1\"":"value=\"0\""%>>
      

  2.   

    <%=(o[2]!=null)?"checked value=\"1\"":"value=\"0\""%>>
    这是从服务器拿的数据判断的我说是  <input type=checkBox 选中后value自动赋值的判断 if  checked  ........ value = 1 ...  类似这样的!
      

  3.   

    这样是实现 使用 js判断比较方便 可以在赋值的地方调用一个js函数。在js里面对checkbox 做个监听,然后给 隐藏的标签赋值就可以了。
      

  4.   

    你这个程序应该有些问题,你是用了一个循环,但是你的<input type="hidden" name="right_ids"/>
    你在循环体里面生成的隐藏域的name属性都会是同一个,那么如果你想选择对应的checkbox的时候,改变hidden的值是会出问题的!
      

  5.   

    name="right_id"+ <%=o[0]%>name="right_ids"
    相同??
      

  6.   

    后台 通过request.getParameterValue("right_ids") 取得的字符串数组[] 是list中所有checkBox的value值~~~
    最好不要通过JS  拜托给点有点意义的代码
      

  7.   

    checkbox选中后,提交表单,表单中就已经包含了checkbox中所有选中的项了,在后台,调用request.getParameterValues("right_id");就会得到你的checkbox所有选中的项的字符串数组,没有必要在页面中传回。
      

  8.   

    .....页面加载的时候 给的是从数据库取出的初始化的value ;;  getParameterValues("right_id") 怎么取都是初始化的值 而不是更改后的value!@
      

  9.   

    问题已经解决   最终还是通过繁冗的JS   真不想这么做
    function check(){var dfe = document.forms["right"];
    var chkStatus ;
    var cl="";
        for(i=0;i<dfe.elements.length;i++){
    document.write(dfe.elements[i].checked+"\n");
    if(dfe.elements[i].checked){
    chkStatus=1;
    }else{chkStatus=0;}
    cl +=chkStatus+"|";
    }
    //* document.write(cl)
    }
      

  10.   

    把你的checkbox放到form中,提交form...
      

  11.   

    完全没有必要写这个js,checkbox就有这种功能
    index.jsp:
    <%@page pageEncoding="gbk" %>
    <html>
    <head>
    <title>Index</title>
    </head>
    <body>
    <center>
    <h1>Index</h1>
    <hr>
    <form action="test.do" method="post">
    <%for(int i=0;i<10;i++){ %>
    <input type="checkbox" name="names" value="<%=i %>">name<%=i %>
    <%} %>
    <input type="submit" value="click">
    </form>
    </center>
    </body>
    </html>
    TestServlet.java:
    package test;import java.io.IOException;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet { /**
     * 
     */
    private static final long serialVersionUID = 5222793251610509039L; protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
    throws ServletException, IOException {
    // TODO Auto-generated method stub
    doPost(arg0, arg1);
    } protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
    throws ServletException, IOException {
    // TODO Auto-generated method stub
    String[] a = arg0.getParameterValues("names");
    for (int i = 0; i < a.length; i++) {
    System.out.println(a[i]);
    }
    }}
      

  12.   

    是啊,只要checkbox的name相同,直接提交form后台就能取到了啊,不需要什么隐藏域,在checkbox上加个onclick事件改变value就行<input type="checkbox" id="right_id<%=o[0]%>" name="right_ids"
      <%=(o[2]!=null)?"checked value=\"1\"":"value=\"0\""%>
      onclick="javascript: this.value=this.checked?'1':'0'">
    <!--<input type="hidden" name="right_ids" <% if。{ %> value ="1" <%} %> >-->
      

  13.   

     呵呵,我还是觉得有点不明白。 就是一个hidden在页面上要不要主动给hidden属性赋值了;如不给hidden赋值他在什么时候才能有值