如何从复选框列表中动态获取值

时间:2013-07-02 03:16:53

标签: java javascript html jsp jstl

我有一个复选框列表,显示员工的帐户ID列表,以便检索单个记录。

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

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

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

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

由于

2 个答案:

答案 0 :(得分:0)

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

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

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

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

  • 或者,您可以使用 javascript 跟踪所选的帐户ID。在每次选中复选框时,递增设置为counter的{​​{1}}。提交表单时,可以将隐藏字段作为请求参数进行检索。

答案 1 :(得分: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为“hidden_​​value” 如果你需要插入复选框的'id'而不是值

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

因此,您需要将名称和id隐藏的输入字段放在表单

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

否则

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

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

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

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