簡體   English   中英

提交時以呈現形式清除搜索text_field_tag

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM