/* 是否全选标记 */
                   var checkedAll = false;
                   /* 全选/取消全选
                    * formName 所在form的name值
                    * checkboxName checkbox的name值
                    * 注意:所有checkbox的name值都必须一样,这样才能达到全选的效果
                    */
                function selectAll(formName,checkboxName){                    var form = document.all.item(formName);
                    var elements = form.elements[checkboxName];
                     alert(form);
                     alert(elements);
                   for (var i=0;i<elements.length;i++){
                    var e = elements[i];
                    if(checkedAll){
                    e.checked = false;
                    form.alls.checked = false;
                   } else {
                   e.checked = true;
                   form.alls.checked = true;
                    }
                       }
                  if(checkedAll){
                  checkedAll = false;
                     } else {
                  checkedAll = true;
                     }
                     }
                  /* 检查是否有checkbox被选中
                   * formName 所在form的name值
                   * checkboxName checkbox的name值
                   * 注意:所有checkbox的name值都必须一样,这样才能达到全选的效果
                   */
                  function checkAll(formName,checkboxName){
                    var hasCheck = false;
                    var form = document.all.item(formName);
                    var elements = form.elements[checkboxName];
                 for (var i=0;i<elements.length;i++){
                    var e = elements[i];
                 
                  if(e.checked){
                   hasCheck = true;
                   
                               }
                           }
                   return hasCheck;
                 }
                 /* 执行操作 */
                 function do_action(){
                  alert("1111111111111111111111111yuyuyu");
                       if (!checkAll("formName","no")){
                          alert("没有checkbox被选中,提示用户至少选择一个!");
                              } 
                          else{
                          var che=document.getElementsByName("checkbox");
                          for(var i=0;i<che.length;i++){
                          if(che[i].checked){
                           alert(che[i].value);
                           up=che[i].checked;
                           document.formName.action= "/system/sysupdate/Cjy_upprior.do?checkbox1=" +up;
                           
                              }
                                 }
                          
                          
                          }
                          }  
                        jsp代码:<body >
<form action=""  name="formName"   method="post" enctype="multipart/form-data"   > <input type="file" name="path" id="ss" /> <br>
<input type="button" value="提交" onclick="upload()">

<table  id="dataList"  align="center" border="1"  >
<tr>
<td>
用户Id
</td>
<td>
手机号码
</td>
<td>
定制类型
</td>
<td>
定制状态
</td>
<td>
定制时间
</td>
<td>
截至时间
</td>
<td>
用户状态
</td>
<td>
业务详情
</td>
<td>
优先级别
</td>

<td>
<input type="checkbox" name="alls" onClick="selectAll('formName','no')" title="全选/取消全选">
</td>
</tr>   
   
     <s:iterator value="hlist" id="id">
     <tr>             <td>
          <s:property   value="#id.usid"/></td>
         <td ><s:property       value="#id.userNumber"/></td>
      <td><s:property value="#id.ServiceType" /></td>
    <td><s:property value="#id.State" /></td>
<td><s:date name="#id.PassTime" format="yyyy-MM-dd" /></td>
<td><s:date name="#id.LogoutTime" format="yyyy-MM-dd" /></td>
<td><s:property value="#id.UserType" /></td>
<td><s:property value="#id.CodeName" /></td>
<td><s:property value="#id.sms_priority" /></td>
<td><input type="checkbox" name="no"  value="${usid}&${sms_priority}" title="选择/不选择"> </td>
</tr>    
</s:iterator>
<p align="center"><input type="button" name="actionButton" value="保存" onClick="do_action()"></p>
</table>
</form>
</body>

解决方案 »

  1.   

    在form中就直接提交呗,干嘛要特意去获取复选框的值呢?
    在action中通过request是可以获取到的,值是数组。
      

  2.   

    用request.getParameterValues("xx")获取
      

  3.   

    我在action中,没有request这个方法,还有别的方法获取吗?
      

  4.   

    我用js是有一个全选的过程,选完了,再传,所以用js
      

  5.   

    页面:<form action="test.action" method="post">
    <input type="checkbox" value="1" name="test"/>测试值1
    <input type="checkbox" value="2" name="test"/>测试值2
    <input type="checkbox" value="3" name="test"/>测试值3
    <input type="checkbox" value="4" name="test"/>测试值4
    <input type="submit"/>
    </form>
    ACTION:public class MessageAction extends ActionSupport{
     private String test;
     public void setTest(String test) {
      this.test = test;
     }
     public String execute() {
       System.out.println("struts action value:" + test);

    String[] values = ServletActionContext.getRequest().getParameterValues("test");
    System.out.print("servlet mode values:");
    for(String str : values)
    System.out.print(str + " ");
    System.out.println(); return SUCCESS;
     }
    }
      

  6.   

    管你有没有全选,在action里面获取checkbox的值总是没错的。
      

  7.   

    在Action里用这个方法
    ServletActionContext.getRequest().getParameterValues("复选框ID名称");
    直接就可以取得一个String类型数组
      

  8.   

    既然你传up过去了  你只要在action里面设置一个字符串数组去接受up
    private String[] up;然后set get