我想在搜索栏中添加自动完成功能。但是当我提交完成的用户时,我得到了这个网址:
/users?utf8=✓&search=Thomas
而不是/users/23
我的控制器
@users = User.find(:all, :select=>'name').map(&:name)
Javascript
<%= javascript_tag "var autocomplete_items = #{ @users };" %>
<script type="text/javascript">
jQuery(document).ready(function() {
$('#auto_complete').typeahead({source: autocomplete_items});
});
</script>
我的表格
<%= form_tag users_path, :method => :get do %>
<%= text_field_tag :search, params[:search], :id => "auto_complete" %>
<% end %>
感谢您的帮助
答案 0 :(得分:0)
从我可以从Bootstrap文档中收集到的内容,typeahead
只是为了做到这一点 - 在文本之前输入。它只需要你的输入,看看它的源中是否有与输入匹配的东西,并为完成输入提供了一些选择。如果用户选择替代方法,则typeahead将填写所选字符串。
所以你唯一得到的就是输入字段中的一个字符串。
Typeahead不知道如何构建您需要的链接:/uses/23
事件如果Bootstrap typeahead知道如何做到这一点,你没有提供所需的信息,因为你只提供了用户的名字。
我认为你想要做的是:
我对Bootstrap的预先输入并不完全熟悉 - 你可以用它来做这些事情。
但我主张使用更好的文档,例如jQuery UI:s autocomplete。