[英]Clearing Search text_field_tag In Rendered Form on Submit
我正在使用Rails 5.1創建一個簡單的搜索,該搜索使用表單中的單個文本字段,該表單從SQLITE3 DB獲取數據並在新HTML頁面上的表中返回數據。 搜索表單是呈現的表單,它將搜索的值傳遞給控制器
index.html.erb
<%= render 'search', foo: @foo %>
_search.html.erb
<div>
<%= form_tag(search_home_index_path, :method => 'get', id: 'search_form') do %>
<%= text_field_tag :search, params[:search], id: 'search_field', placeholder: "Search", :required => 'required'%>
<%= submit_tag("Search", :class => "button", :name => nil) %>
<% end %>
</div>
application_record.rb
def self.search(search)
where("(foo) LIKE ?", "%#{search}%")
end
home_controller.rb
def search
if params[:search]
@foo = Foo.search(params[:search]).order("id ASC")
else
@foo = Foo.all.order("id ASC")
end
end
搜索工作正常並返回值。 但是,(並且我相信這是因為我要在多個頁面上呈現相同的表單),當搜索返回時,text_field_tag值將保留在原始頁面上輸入的搜索條件,並在新頁面的text_field_tag中填充相同的值。 我試圖使用JavaScript通過以下方式清除text_field_tag
document.getElementById('search_field').value='';
作為功能
<body onload...
但它不起作用-text_field_tag保留該值。 我也嘗試使用
document.getElementById('search_form').reset();
但這最終在我的搜索變量中發送了一個空白值,並返回了數據庫中的所有項目。
我已經看到了一些有關將字段值的代碼放置在Coffee腳本中的參考,但是我不確定如何實現它(我已經對Ruby進行了大約2個月的編碼)。
任何建議,將不勝感激!
實際上,您就是在表單中設置此值的人。 您可以將其設置為nil,就像這樣;
<%= text_field_tag :search, nil, id: 'search_field', placeholder: "Search", :required => 'required'%>
可以在此處找到text_field_tag的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.