【问题标题】:Integrate select2 in simple_form在 simple_form 中集成 select2
【发布时间】:2012-12-31 13:20:13
【问题描述】:

我在表单上使用 select2。但想在整个应用程序中使用它。

我的 application.html.erb 中有这部分

<script type="text/javascript">
  $(document).ready(function() {
    <%= yield :document_ready %>
  });
</script>

我认为这是:

<% content_for :document_ready do %>
  $("#menu_category_id").select2({minimumResultsForSearch: 10});
<% end %>

这是视图中的实际输入:

<%= f.input :menu_category_id, :collection => @product.menu.menu_categories, 
  :label_method => :name, :value_method => :id, :label => "Category" %>

这没有任何问题。但是我不想在所有视图中重复这一点,我想用 simple_view 来处理。

如果我使用,最好是:

<%= f.input :menu_category_id, :collection => @product.menu.menu_categories, 
:label_method => :name, :value_method => :id, :label => "Category", 
:select2 => 'minimumResultsForSearch: 10' %>

它会自动将其放入 :document_ready 部分。因此,如果一个页面上有 3 个选择,它将使用 :select2

中指定的所有选项对所有选择执行此操作

这可以通过自定义输入实现吗?还是其他方式?

【问题讨论】:

    标签: ruby-on-rails simple-form jquery-select2


    【解决方案1】:

    我认为您在这里不需要自定义输入或 content_for 助手。将 CSS 类分配给您想要的输入 select2,例如 with_select2。接下来,为它们分配一个指定minimumResultsForSearch 值的数据属性,例如data-minimum-results。在document.ready 上,然后循环遍历所有具有with_select2 类的输入,并使用数据属性中的minimumResultsForSearch 对它们调用select2

    【讨论】:

    • 谢谢,如果 minimumResultsForSearch 可以更改为许多不同的选项,那确实不错。有时您将 ajax url 和所有内容都放在其中,因此您不希望在 CSS 中使用它。
    • 如果您需要为 select2 方法指定另一个值,您只需在输入中添加另一个数据属性。 CSS 类保持不变。
    • 太好了,明天试试。
    • 知道了,它被称为“Unobtrusive JavaScript”,您可以在Rails guide上找到更多信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多