0

我有一个复选框列表,其中显示了员工检索个人记录的帐户 ID 列表。

<c:forEach var="id" items="${accountList}" varStatus="status">
<input type="checkbox" name="account_id"  value="${id}"/>
</c:forEach>

name = account_id 被声明为字符串数组列表。

选择后,我会将结果提交到struts表单并将结果存储在字符串数组列表中。在提交脚本中,我需要检查帐户id选择的长度并添加计数。最后将值提交到形式。

如何实现这一点。请任何人帮助..

谢谢

4

2 回答 2

0

当您需要计算所选值的数量时,您可以采用以下两种方法之一。

  • 当 http 请求包含具有多个值的名称(在您的情况下account_id)时,列表将作为逗号分隔的值列表传递给该名称。Servlet API 提供了一种非常方便的检索值的方法。

    String accountIds = request.getParameterValues("account_id");

这将为您提供包含帐户 ID 列表的数组。array() 的长度accountIds.length应该为您提供所选帐户 ID 的计数。

  • 或者,您可以跟踪使用javascript选择的帐户 ID 。在复选框的每次选择中,增加counter设置为 a 的 a form hidden-field。提交表单时,可以检索隐藏字段作为请求参数。
于 2013-07-02T03:57:06.080 回答
0
function updateTextArea() {         
        var allVals = [];
        $('input:checkbox[name=checkbox_name]:checked').each(function() {
        allVals.push($(this).val());
        });
        $('#hidden_value').val(allVals);
}
$(function() {
        $('input:checkbox[name=checkbox_name]').click(updateTextArea);
        updateTextArea();
});

'checkbox_name' 是复选框的名称

allVals.push($(this).val()); 

如果您需要插入复选框的“id”而不是值,这会将复选框的值推送到 id 为“hidden_​​value”的隐藏字段

allVals.push($(this).attr('id'));

因此,您需要将输入字段与名称和 ID 隐藏在表单内

然后在您的操作页面中从隐藏的输入字段中获取值。用“,”分隔符将其拆分,您将获得一个数组。数组的内容将是您检查的值,大小将为您提供元素数量。

否则

checked_count = $('[name="checkbox_name[]"]:checked').length

在表单提交之前计算这个并存储在隐藏字段中

$("#hidden_id").val(checked_count)

从操作页面的隐藏字段中获取值。

于 2013-07-02T07:55:42.460 回答