Не могу переключаться между двумя формами jquery / ajax без перезагрузки страницы после первого вызова ajax - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть форма 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 %>

1 Ответ

0 голосов
/ 03 апреля 2012

Может включать preventDefault()?Вам также не нужно определять метод ready дважды:

$(document).ready(function (){ 

   $('.save_form').submit(function(event){  
      event.preventDefault();
      $.post($(this).attr('action'), $(this).serialize(), null, "script");  
      return false;  
   });  

   $('.unsave_form').submit(function(event){  
      event.preventDefault();
      $.post($(this).attr('action'), $(this).serialize(), null, "script");  
      return false;  
   }); 

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...