【问题标题】:How to post multiselect selected options as one param in url - Bootstrap Multiselect如何将多选选定的选项作为一个参数发布到 url - Bootstrap Multiselect
【发布时间】:2015-07-19 00:11:08
【问题描述】:

我正在使用bootstrap-multiselect,需要提交带有选定选项的表单。

但是在提交表单时,url 变成这样 ....&sites=1&sites=2&sites=3 而我需要它是 ...&sites=1,2,3

这是我的代码:

<select id="sites" name="sites" class="form-control" multiple="multiple">
    <option value="1">Site 1</option>
    <option value="2">Site 2</option>
    <option value="3">Site 3</option>
</select>

JS:

$('button[type=submit]').click(function () {

      var text = $('#sites').val()
      //I have the list in `text` as 1,2,3 which need to in url
      //do the rest and continue submit

如何在 url 中发布这些选定的值(即 url/sites=1,2,3 而不是 url/sites=1&amp;sites=2&amp;sites=3

感谢您的帮助!

【问题讨论】:

  • 您可以用$('#sites').val() 替换所有代码。这将提供一个包含所选值的逗号分隔字符串。不过,我不确定您的问题的确切点,因为您现在拥有的代码虽然冗长,但可以按您的要求工作。
  • 好的,让我试试。但是如何在 url 中将其发布为 sites=1,2,3 等

标签: javascript jquery twitter-bootstrap multi-select bootstrap-multiselect


【解决方案1】:

我通过使用隐藏字段完成了它。

var text = $('#sites').val();
$('#sites_hidded').val(text);

使用 html(从 select 中删除了名称 attr,因此它不会与表单一起提交)

<select id="sites" class="form-control" multiple="multiple">
    <option value="1">Site 1</option>
    <option value="2">Site 2</option>
    <option value="3">Site 3</option>
</select>
<input type="hidden" name="sites" id="sites_hidden">

【讨论】:

    【解决方案2】:

    您可以将选择重命名为 sites[]

    <select id="sites" name="sites[]" class="form-control" multiple="multiple">
        <option value="1">Site 1</option>
        <option value="2">Site 2</option>
        <option value="3">Site 3</option>
    </select>
    

    这将通过提交发送到服务器,没有任何 js 一个变量 sites 作为具有多个选择选项的数组。

    【讨论】:

    • 这应该是选择的答案。
    • 无论出于何种原因,此解决方案都会生成这种 URL:/?sites%5B%5D=2&amp;sites%5B%5D=3 这将转换为 /?sites[]=2&amp;sites[]=3 这是错误的。应该是/?sites[]=2,3 这里有东西 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多