首页 > 解决方案 > Select2 在表单 POST 后获得多项选择

问题描述

我有这个 select2 多选下拉菜单,它在客户端运行良好,但只发布用户最后一次选择:

<select class="searchable-dropdown form-control form-control-md" name="payment_methods" id="payment-methods-send" multiple="multiple">
 <%= options_for_select( (::Transaction::SEND_METHODS).collect{ |m| [t(m[:name]), m[:name].parameterize ]}, selected: params[:payment_method] ) %>
</select>

它生成以下标记:

<select class="searchable-dropdown form-control form-control-md" name="payment_methods" id="payment-methods-receive" multiple="multiple">
 <option value="coupons">Coupons</option>
 <option value="paypal">Paypal</option>
 <option value="skrill">Skrill</option>
 <option value="revolut">Revolut</option>
 <option value="zelle">Zelle</option>
 <option value="transferwise">Transferwise</option>
 <option value="swift-bank-transfer">SWIFT bank transfer</option>
 <option value="european-bank-transfer">European bank transfer</option>
 <option value="us-bank-transfer">US bank transfer</option>
 <option value="uk-bank-transfer">UK bank transfer</option>
 <option value="check">Check</option>
</select>

我用它来初始化控件:

$( ".searchable-dropdown" ).select2({ theme: "bootstrap" });

在进行了几次选择并发送表格后,我在参数中得到了这个:

"payment_methods":"paypal"

Paypal 确实被选中(最后一个),但其他一些选择也是如此。

不应该以逗号分隔或其他方式发送它们吗?难道我做错了什么?

标签: ruby-on-railsjquery-select2

解决方案


没关系,看起来我没有问谷歌正确的问题......

多选框在导轨中不起作用

您需要通过将名称更改为 payment_methods[] 来确保发送一系列答案


推荐阅读