【问题标题】:how to ensure rails multiselect input field passes all values correctly?如何确保rails多选输入字段正确传递所有值?
【发布时间】:2015-04-02 00:11:22
【问题描述】:

所以,我在引导模式中有一个表单。

当模态加载时,一些 javascript 调用服务器来确定当前用户已经选择了什么(这是一个编辑模态)。一旦服务器响应返回,表单选择将自己设置为用户已经选择的值,如下面的屏幕截图所示。

提交表单时出现我的问题。发送到服务器的参数具有指向单个值的键“room_object_id”。除了该键的命名问题,我需要该键指向一个值数组或一个字符串或任何将包含多个值的结构,但情况并非如此,如下面的屏幕截图所示。

我的表单是由

生成的
<%= form_for :student, url: student_path, html: {class: 'form-horizontal sync'}, method: :put do |f| %>

<%= f.select(:room_object_id, options_for_select(@rooms.map {|room| [ room['name'], room['objectId'] ]}),{multiple: 'true', include_blank: ''} , {:class => 'select2-init form-control force-full-width', required: 'true', multiple: 'true', name: 'room_object_id'}) %>

<% end %>

我有点不清楚 select2 和 html 表单是如何协同工作的,我感觉我的问题与此有关。我也有点不清楚rails selectcollection_selectoptions_for_select 的不同用法。我已经查看了有关此主题的其他 SO 帖子,但没有任何内容为我指明正确的方向。任何指针将不胜感激。

【问题讨论】:

  • 您能否检查以确认在 HTML 中生成了 &lt;select&gt;?听起来您要么尝试错误地检索选择数组,要么生成标签时出现问题。

标签: ruby-on-rails jquery-select2


【解决方案1】:

您是否使用了运行 select2 所需的 JavaScript?

$(document).ready(function() {
  $("#id_of_your_select_field").select2();
});

如果是,您的 JavaScript 控制台是否显示任何错误?

【讨论】:

  • 没有定义 js 错误,我最终将其他一些代码拆解并从 f.select 移动到 f.collection_select 并清理了行为。呈现的 html 有一些细微的差异,我不太注意到(我认为是由于 select2 html 注入)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多