Rails - 下拉和自由文本输入的组合

时间:2015-07-29 08:18:44

标签: ruby-on-rails combobox dropdownbox

我正在使用Rails 4.2.1和ruby 2.1.6

我正在寻找解决方案来执行以下操作:
有一个包含现有区域列表的下拉列表(Bundesland)。 如果我在该列表中找到我的区域,请从下拉列表中选择,我很好。
如果我找不到我的区域,我需要手动在文本字段中键入新区域。这也将在数据库中创建一个新条目。
为了使这个用户友好且易于使用而不在字段之间切换,我希望尽可能在一个字段中使用它。

以下是我实际下拉列表的代码,但没有任何选项 自由文本和手动输入。

<br>
= ai3.input :area_id, label: "Bundesland/Kanton", :as => :select, :collection => option_groups_from_collection_for_select( @area_countries_dach, :area_regions, :name, :id, :name)

现在需要将其扩展为选择框(下拉列表)和自由文本输入字段的组合。

让用户在字段中键入区域的开始字符会很棒。如果找到,请单击或离开该字段进行选择。如果未找到,请使用已键入的字符来创建新区域。

关于如何解决这个问题的任何想法? 感谢。

2 个答案:

答案 0 :(得分:0)

如果 区域 <点击 链接/按钮/ div ,您可以手动显示text_fielddrop-down

中找不到/ strong>

如下所示

<div id="show_region" class="btn btn-primary">Cant Find Your Region? Manually Add It Here</div>
<%= ai3.input :some_attribute, :class => 'form-control', :id => 'input_region', placeholder: 'Enter your region' %>

<强> Javacsript

<script type="text/javascript">
$('#input_region').hide();
$(document).ready(function() {
  $('#show_region').click(function() {
    $('#input_region').slideToggle("slow");
  });
});
</script>

无法 将其保存在 相同属性 AFAIK 即可。您需要为text_field提供 不同属性

  

让用户在字段中键入内容会很棒   该地区的角色。如果找到,请单击或离开字段

这需要 自动填充 text_field而非普通text_field。看看here如何实现它。

答案 1 :(得分:0)

正如Pavan所提到的,自动填充文本字段在这种情况下效果很好。我最近碰到了同样的事情并使用了twitter typeahead https://github.com/yourabi/twitter-typeahead-rails

其他地方有很多关于它的讨论。