question about Form

I have a case that a form has two submit button,
one is edit button that only change the current div that can use form_remote_tag,
the other is delete button that should refresh the whole page that can use form_tag.

But I what use edit and delete button both in a form, how can I do that?

I think javascript is the only way I can think of.

One way would be to load the page, and then attach an event listener to
the submit event of the form. Then you detect if it’s an edit
click, in which case make an ajax request and the stop the event with
Event.stop( event ). If it’s the delete button do nothing and let
the form take it’s natural course.


typically if you're going to use more than one submit button inside a
form, then you can check to see which was clicked in two ways:

1. name both buttons the same, and check which value is posted
<input type='submit' name='btnSubmit' value='submit one' />
<input type='submit' name='btnSubmit' value='submit two' />

if params[:btnSubmit] == "submit one"
  ... do this ...
  ... do that ...

2. name the buttons differently, and see which posts a value
<input type='submit' name='btnSave' value='Save' />
<input type='submit' name='btnCancel' value='Cancel' />

if params[:btnSave]
  ... do this ...
elsif params[:btnCancel]
  ... do that ...

personally I tend to use method # 2

I got it.

<% form_tag :action => “destroy” do %>

<% for category in @categories %>

<% end %>
<%= radio_button ‘category’, ‘id’, %><%= h %>

<%= submit_to_remote ‘edit’, ‘Edit’, :update => ‘category’, :url => { :action => ‘edit’ } %>
<%= submit_tag 'Delete' %>

<% end %>

edit button is submit_to_remote which is asynchronized and delete button is submit_tag that will refresh the whole page