Ajax beforeSend只在Rails上运行一次

时间:2012-04-07 14:50:55

标签: jquery ruby-on-rails ajax

我有3个文件:

index.html.erb是我的主页

在索引中我渲染了一个部分的_relationship.html.erb,并且有一个包含以下行的表单:

<%= form_tag('/relationships/update/', :remote => true, :id => "relationships_form_#{@count}") do %>

我也有index.js.erb(relationship.html在index.html.erb中)

jQuery("#relationships_form_1").bind("ajax:success", function() {
  $("#box_relationships").hide().html("<%=escape_javascript(render('relationships/relationships'))%>").fadeIn(2000, 'swing');
  })

每次都会发送表单,并且值会更改。

我想使用beforeSend选项显示加载gif。

我试过(在index.html.erb上。如果我把它放在_relationships部分,它根本不起作用):

jQuery("#relationships_form_1").bing("ajax:beforeSend", function() {
$("#relationship_save").show();
});  

但它只能运作一次。

然后,我添加了之前的rails选项

:before => '$("#relationship_save").show();'

它再次只能运作一次。

我甚至在jquery上尝试了.on

    jQuery("#relationships_form_1").on("ajax:beforeSend", function() {
$("#relationship_save").show();
});

它仍然只能运作一次。

每次发送表单,每次都存储该值,之前只有一次

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

jQuery(document).on("ajax:beforeSend", "#relationships_form_1", function() {
  $("#relationship_save").show();
});

因为您的ajax加载表单与初始表单不同。