8

是否有等效于使用没有 jRails 的 jQuery 的 Rails/Prototype observe_field 方法?

我正在使用 will_paginate 进行搜索时键入:

<%= observe_field('搜索',
                  :频率=> 2,
                  :update => '结果',
                  :loading => "Element.show('spinner')",
                  :complete => "Element.hide('spinner')",
                  :url => { :controller => 'foo', :action => 'search' },
                  :with => "'search=' + escape(value)") %>

4

2 回答 2

10

使用 jQuery,你需要使用一个选择器,这样的东西应该可以工作

$("#search").bind("blur", function() {
  $("#spinner").show(); // show the spinner
  var form = $(this).parents("form"); // grab the form wrapping the search bar.
  var url = form.attr("action"); // grab the URL from the form's action value.
  var formData = form.serialize(); // grab the data in the form
  $.get(url, formData, function(html) { // perform an AJAX get, the trailing function is what happens on successful get.
    $("#spinner").hide(); // hide the spinner
    $("#results").html(html); // replace the "results" div with the result of action taken
  });
});

对评论的回应

如果您想对 keyup 做出反应,请将第一行替换为

$("#search").bind("keyup", // etc...
于 2010-01-24T15:51:40.687 回答
7

试试这个:

https://github.com/splendeo/jquery.observe_field

于 2011-03-08T00:58:40.950 回答