繁体   English   中英

Rails Form_Tag远程调用成功,但没有jQuery回调

[英]Rails Form_Tag remote call success but no jquery callback

我有一个form_tag可以对返回json的搜索方法进行ajax调用。

= form_tag '/search',:remote => true,id: 'form', method: :post do
  = hidden_field_tag '_method,', :put 
  .row.form_attributes
    = text_field_tag :location, nil, placeholder: "San Francisco, CA"
    = submit_tag "Search", :class=>"btn btn-primary"

这是我的控制器操作中的最终声明:

def search
  #irrelevant code 
  render json: stripped_events.to_json
end

我已经设置了以下侦听器,以便可以获取返回的json并对其进行操作。

console.log("LOAD");
$('#form').bind('ajax:success', function(xhr, data, status){
  console.log("WIN");
  console.log(data);
});

我知道我的JavaScript正在加载,因为我看到控制台上印有“ LOAD”字样。 在讨论之后,我也尝试过使用rails3 rails.js和jquery捕获ajax请求的成功和失败 ,但是没有成功。

有什么建议吗?

无需将JSON返回浏览器,而是可以使用JavaScript进行响应:

def search
    #irrelevant code
    @stripped_events = ...

    respond_to do |format|
        format.js
    end
end

然后在app/views/controller_name创建一个名为search.js.erb的视图模板。 该文件是ERB评估的JavaScript,因此您可以像HTML ERB模板一样在其中使用Ruby。 该文件中的JavaScript将在浏览器的上下文中执行。

console.log("WIN");
<% for stripped_event in @stripped_events %>
// use JavaScript / jQuery to manipulate the DOM
<% end %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM