0

我有一个在 rails 应用程序上使用 .keyup 方法的搜索功能。我知道这个电话正在工作,因为我输入的第一个字母是搜索并显示结果。如果我继续键入它不会继续搜索该方法。下面是我的 jquery 以及它正在调用的我的 rails 视图的一部分。

jQuery

    $("input#search").keyup(function (){
    $.get($("#verified_search").attr("action"), $("#verified_search").serialize(), null, "script");
    return false;
});

index.js.erb

$(".results").html("<%= escape_javascript(render("search")) %>");

index.html.erb 视图

 <%= form_tag admin_view_index_path, :method => 'get', :id => 'verified_search' do %>
            <%= text_field_tag :search, params[:search] %>
            <%= submit_tag "Search", :name => :nil %>
 <% end %>

 <%= render 'search' %>
4

2 回答 2

0

利用.live()

$("input#search").live('keyup', function (){
  $.get($("#verified_search").attr("action"), $("#verified_search").serialize(), null, "script");
  return false;
});

当您替换$('.results')index.js.erb 中的内容时,与这些元素关联的所有侦听器都将消失。

http://api.jquery.com/live/

编辑:正如链接中所说,该.live()方法自 jQuery 1.7 起已弃用。用于.on()附加事件处理程序。旧版本 jQuery 的用户应该.delegate()优先使用.live().

于 2013-02-27T15:49:49.157 回答
0

尝试这个

$(document).on("keyup", "#verified_search", function(){
       $.get($("#verified_search").attr("action"), $("#verified_search").serialize(), null, "script");
       return false;
   }); 
于 2016-11-03T19:04:34.193 回答