可能这个问题听起来很奇怪。但是,正如我第一次这样做,不知道它到底是什么。
我在www.mealnut.com的主页上有一个使用typeahead的搜索方法(请查看现场演示)。有两个条目,城市和类别。 City在typeahead数组中显示数据并在提交时显示搜索结果。这是一个代码:
<%= form_tag search_path, :method => 'get' do %>
<%= text_field_tag 'search', nil, :placeholder =>"Enter your city ", :autocomplete => :off, :'data-provide' => "typeahead", :id=>"citysearch" %>
<%= select_tag :category, options_from_collection_for_select(@categories, "id", "category", params[:category]), html_options = { :prompt => 'Select a category'} %>
<%= submit_tag "Search"%>
<% end %>
这是typeahead脚本:
$(document).ready(function(){
var cities = ["Bengaluru", "Pune", "New Delhi", "Delhi", "Mumbai"
$("input[data-provide='typeahead']").typeahead({source: cities});
});
这就是问题:当用户点击后退按钮返回主页时,城市会被清除,类别仍然是选中状态。在这里用户应该看到城市,他上次输入而不是空白字段。
我认为这会发生因为typeahead只给出数组并且不会在任何地方存储值。我不想为数组创建单独的表。
我发现cookie可能是选项。但是不知道如何使用它,因为从未尝试过cookie。此外,这个cookie或其他任何东西的最佳解决方案是什么?有人这样做过吗?
请帮忙!
更新
我在控制器中使用了一个城市的cookie。我家控制器的索引操作是:
def index
@categories = Category.all
cookies[:search] = "Mumbai"
end
修改索引页面表单以便搜索:
<%= text_field_tag 'search', nil, :placeholder =>"#{cookies[:search]} ", :autocomplete => :off, :'data-provide' => "typeahead", :id=>"citysearch" %>
这显示城市孟买点击后退按钮。但我不希望城市得到修复。它应该是用户输入的值。谁能说出怎么做呢?