0

我有一个简单的表格。现在,如果表单提交的新值与第一次搜索的值不同,我需要做的是隐藏一个 div 元素。

我该怎么做?

我在 Rails 上使用 jquery 和 ruby

这是代码

<%= form_tag home_path, :method => "post", :name=>"onLoad",  :remote=> true  do %>
                <div class="containePrepend">
                    <% if params[:searchedValue].nil? == true%>

                    <%=text_field_tag 'search', nil, :placeholder => 'Please enter the product to continue' %>
                    <%else%>
                    <%=text_field_tag 'search', nil, :value => params[:searchedValue]%>
                    <%end%>

                </div>
                <%= button_tag(:type => 'submit', :id => "buttonSubmit") do %>
                <% end %>
                <% end %>

表单正在通过 ajax 提交appends给 div

<div class="product_first_roll"></div>
<div class="product_old_roll"></div>

现在,如果搜索的值比前一个值新。我想从里面的旧搜索中隐藏内容

<div class="product_first_roll"></div>
<div class="product_old_roll"></div>

并且只显示里面的新的

<div class="product_first_roll"></div>
<div class="product_old_roll"></div>

对不起,如果它听起来太复杂或搞砸了。如果我只知道如何检查表单是否使用新值提交,我可以弄清楚其余的。

谢谢

4

1 回答 1

1

一种方法是:

只需一个 div 并在每次搜索后用新的搜索结果更新同一个 div,这样就不需要隐藏旧的 div。

或者,

在表单中添加一个隐藏字段,例如<%= hidden_field_tag :previous_search_value, params[:searchValue] %>controller action

@hidden = params[:previous_search_value].eql?(params[:searchValue])

现在完成此操作后,在成功函数或 .js.erb 文件中添加以下逻辑以隐藏您的 div。

<% if @hidden %>
  $("#product_old_roll").hide();
<% end %>

希望这会有所帮助。

于 2013-04-02T08:44:21.417 回答