0
我有以下列方式构造的AJAX形式后页面重新加载:广东话切换而无需首先AJAX调用
<% if @post.saved? %>
<%= render 'shared/unsave' %>
<% else %>
<%= render 'shared/save' %>
<% end %>
在的application.js(两者是相同的):
$(document).ready(function(){
$('.save_form').submit(function(){
$.post($(this).attr('action'), $(this).serialize(), null, "script");
return false;
});
});
$(document).ready(function(){
$('.unsave_form').submit(function(){
$.post($(this).attr('action'), $(this).serialize(), null, "script");
return false;
});
});
单击一次就可以正常工作,但第二次单击时会重新加载页面。为什么不能用ajax在两个窗体之间切换?
共享/保存部分:
<%= form_for current_user.saved.build(:post_id=> post.id), :html => { :class => 'save_form'}, :remote => true do |f| %>
<div><%= f.hidden_field :post_id %></div>
<%= image_submit_tag("save-off.png", :alt => "save", :id => "save_button", :title => "Add to Saved") %>
<% end %>
共享/取消保存部分:
<%= form_for current_user.saved.find_by_post_id(post), :html => { :method => :delete, :class => 'unsave_form' }, :remote => true do |f| %>
<div><%= f.hidden_field :post_id %></div>
<%= image_submit_tag("save-on.png", :alt => "unsave", :id => "unsave_button", :title => "Remove from Saved") %>
<% end %>
很难说没有看到HTML,但一些潜在的问题:1。你完全替换形式的AJAX调用的结果,从而删除提交事件处理程序。 2.你的“unsave”形式没有class save_form,所以试图绑定事件处理程序不起作用。 – 2012-04-03 14:27:33
嘿安东尼,我知道这有点迟了,但你究竟是什么意思。如何防止表单被ajax调用完全取代?我的unsave /保存表单必须有两个类(保存和未保存)? – 2012-04-08 21:41:12