Using AJAX in Rails: How do I change a button as soon as it's clicked?
        Posted  
        
            by 
                sdc
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by sdc
        
        
        
        Published on 2011-01-11T22:37:07Z
        Indexed on 
            2011/01/15
            12:53 UTC
        
        
        Read the original article
        Hit count: 251
        
Hey! I'm teaching myself Ruby, and have been stuck on this for a couple days:
- I'm currently using MooTools-1.3-compat and Rails 3. 
- I'd like to replace one button (called "Follow") with another (called "Unfollow") as soon as someone clicks on it. I'm using :remote => true and have a file ending in .js.erb that's being called...I just need help figuring out what goes in this .js file 
- The "Follow" button is in a div with id="follow_form", but there are many buttons on the page, and they all have an id = "follow_form"...i.e. $("follow_form").set(...) replaces the first element and that's not correct. I need help replacing the button that made the call. 
- I looked at this tutorial, but the line below doesn't work for me. Could it be because I'm using MooTools instead of Prototype? - $("follow_form").update("<%= escape_javascript(render('users/unfollow')) %>") 
ps. This is what I have so far, and this works:
in app/views/shared:
<%= form_for current_user.subscriptions.build(:event => @event), :remote => true do |f| %>
  <div><%= f.hidden_field :event %></div>
  <div class="actions"><%= f.submit "Follow" %></div>
<% end %>
in app/views/events/create.js.erb
alert("follow!"); //Temporary...this is what I'm trying to replace
*in app/controllers/subscriptions_controller.rb*
def create
  @subscription = current_user.subscriptions.build(params[:subscription])
  @subscription.save
  respond_to do |format|
    format.html { redirect_to(..) }
    format.js {render :layout}
end
Any help would be greatly, greatly appreciated!
© Stack Overflow or respective owner