0

我在表单上使用 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 中指定的所有选项对所有选择执行此操作

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

4

1 回答 1

0

我认为您不需要自定义输入或 content_for 帮助器。将 CSS 类分配给您想要的输入select2,例如with_select2. 接下来,为它们分配一个指定minimumResultsForSearch值的数据属性,比如data-minimum-resultsdocument.ready然后循环遍历所有带有类的输入,并使用from data 属性with_select2调用select2它们。minimumResultsForSearch

于 2012-12-31T13:36:16.633 回答