【问题标题】:Sending ListBox selected values as Hidden Field using JQuery使用 JQuery 将列表框选择的值作为隐藏字段发送
【发布时间】:2010-10-18 07:10:59
【问题描述】:

我希望能够使用 JQuery 将列表框中的所有选定值作为隐藏字段发送。 我能够在表单提交时发送/检索单个值。

如果有人可以分享一些代码 sn-p,那将有所帮助。

提前致谢!

【问题讨论】:

  • 能否提供一些示例代码。使用jsfiddle.net 显示示例代码

标签: javascript jquery html json servlets


【解决方案1】:

嗯,你真正想要的是什么还不是很清楚。 HTML 中没有“多选下拉列表”。要进行多选,您需要指定

<select id="foobar" multiple>

这将创建一个listbox,您可以在其中选择多个元素。调用

var sel = $('#foobar').val();

将返回选定项目的Array

编辑

要从每个选项中获取文本,请使用 .map()jQuery.map()。示例:

var sel = $('#foobar').children('option:selected').map(function(i,e){
    return e.innerText;
}).get();

这将创建一个包含所有选定条目的文本的数组。

【讨论】:

  • 我的意思是列表框,抱歉有错别字。 .val() 调用不会给我所选选项的文本,因为列表框是一个依赖下拉列表并且由 JSON 字符串组成。所以, .val 给了我整数索引而不是文本。我使用此处列出的选项 #3 stackoverflow.com/questions/2263996/… 来填充子下拉列表。
  • 10 on 10。我还是新手,所以无法在有限的时间内发布格式化代码。不确定 cmets 上的 Ctrl+K 是否真的适用于代码格式化。仅供参考..这是我第一次尝试 JQuery,我很喜欢它。
【解决方案2】:

完全没有必要这样做。您显然在使用 request.getParameter() 而不是 request.getParameterValues() 并且想知道为什么它只返回第一个值。

只需相应地修复您的 servlet 代码:

String[] selectedItems = request.getParameterValues("dropdownname");

不需要丑陋的 JS/jQuery hack 将它们全部作为单个参数发送。在未来的问题中,尝试询问如何解决问题,而不是如何获得可能本身并不正确的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2021-01-05
    • 1970-01-01
    • 2013-10-07
    • 2016-11-21
    相关资源
    最近更新 更多