如何将此observe_field转换为jquery

时间:2011-03-27 06:58:25

标签: javascript jquery ruby-on-rails prototypejs

我想使用jquery而不是原型,我在jquery转换这个observe_field时有点迷失。

<%=text_field_tag :section %>
<%= observe_field(:section, 
                  :frequency => 0.1, 
                  :update => "article_list",
                  :with => 'section', 
                  :url =>{ :action => :get_article_list }) %>

这是我的开始:

$(document).ready(function() {
  $("#section").bind("keyup", function() {
    var url = '/catalogs/get_article_list';
    $.get(url, function(html) {
      $("#article_list").html(html);
    });
  });
});

我读了这个post,但我想我错过了什么。

感谢任何解释。

感谢。

3 个答案:

答案 0 :(得分:2)

观察者,观察任何输入元素上的事件,当事件发生时,它使用ajax向给定URL发送请求并在给定元素的页面上更新响应。

在这里你可以很好地观察事件,所以你编写了代码来绑定section元素的keyup事件。

现在,当keyup事件触发时,您需要向服务器发出ajax请求。

 $(document).ready(function() {
   $("#section").bind("keyup", function() {
   data = {this.name: this.val()}; // the value of input that need to send to server
   $.get(url, data, // make ajax request
     function(html) { // function to handle the response
      $("#article_list").html(html); // change the inner html of update div
     });
   });
 });

希望这有助于您理解它。

答案 1 :(得分:0)

这也是一个很好的解决方案:https://github.com/splendeo/jquery.observe_field

答案 2 :(得分:0)

$(function() {
    // Executes a callback detecting changes
    $("#section"").change(function(){
    jQuery.ajax({data:'name=' + this.value, success:function(request){jQuery('#article_list').html(request);}, url:'/catalogs/get_article_list'
  })});});