ajax .keyup搜索功能

时间:2013-02-27 15:22:13

标签: ruby-on-rails-3 jquery

我有一个在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' %>

2 个答案:

答案 0 :(得分:0)

使用.live()

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

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

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

编辑:正如链接中所述,从{jQuery 1.7开始'不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应优先使用.delegate() .live()

答案 1 :(得分:0)

试试这个

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