【问题标题】:How to dynamically get the value from the checkbox list如何从复选框列表中动态获取值
【发布时间】:2013-07-02 03:16:52
【问题描述】:

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

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

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

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

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

谢谢

【问题讨论】:

  • 我是使用这个论坛的新手 - 这个问题有什么问题还是我需要更详细一点。感谢任何帮助。

标签: java javascript html jsp jstl


【解决方案1】:

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

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

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

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

  • 或者,您可以跟踪使用 javascript 选择的帐户 ID。在每次选择复选框时,增加一个counter,它被设置为form hidden-field。提交表单时,可以检索隐藏字段作为请求参数。

【讨论】:

  • 你好 santhosh,谢谢你的回复。你能举个例子解释一下吗?
  • 我列出了两种方法,您需要帮助哪一种?
  • 我更喜欢使用第二个。
【解决方案2】:
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)

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

【讨论】:

  • 嗨 Pikrut,我正在尝试你的例子。我会让你知道结果。谢谢..
猜你喜欢
  • 1970-01-01
  • 2012-04-28
  • 2019-06-08
  • 1970-01-01
  • 2023-03-04
  • 2019-12-20
  • 1970-01-01
  • 2014-07-18
  • 2011-10-11
相关资源
最近更新 更多