I'm using the very old trick:

// Prevent double click
$('form').submit(function(){
  $('input[type=submit]', this).attr('disabled', 'disabled');
});


--
Daniel Negri
e: danielgomesne...@gmail.com <danielne...@gmail.com>
d: +55 61 8494 1441
Skype: danielnegri
Follow me on Twitter <http://twitter.com/#!/danielnegri>




On Fri, Jan 6, 2012 at 10:34 AM, Brynjolfur Thorvardsson <bi...@itanet.nu>wrote:

> Hi, I’m not really that familiar with rails/javascript integration. You
> are using a radiobutton to submit a form, and using the onClick event, have
> you considered simply using an input button instead? My suggestion about
> using a delay probably wouldn’t work, what would you delay and where? ****
>
> ** **
>
> When you click rapidly on the radiobutton, the onClick events fires each
> time causing a fresh submit. Rails simply accepts these submits and sends
> the appropriate pages back. You could have a global variable in your
> javascript, e.g. “submitted=false” and then set this to true on first
> submit and check it before each submit.  The variable would be set to true
> again each time the page refreshes, if you need to reset it when a partial
> is loaded then just include a bit of javascript in that partial that resets
> the variable.****
>
> ** **
>
> ** **
>
> *Fra:* rubyonrails-talk@googlegroups.com [mailto:
> rubyonrails-talk@googlegroups.com] *På vegne af *Javier Quarite
> *Sendt:* 6. januar 2012 12:44
>
> *Til:* rubyonrails-talk@googlegroups.com
> *Emne:* Re: [Rails] Duplicate forms after click****
>
> ** **
>
> ** **
>
> On Fri, Jan 6, 2012 at 2:00 AM, Brynjolfur Thorvardsson <bi...@itanet.nu>
> wrote:****
>
> Hi, this sounds like a javascript problem. Javascript is executed
> asynchroniously on your browser so clicking fast means that you are sending
> more than one submit from the same form, causing Rails to return more than
> once from the controller. There are probably many ways to avoid this but
> one is to put in a delay of say half a second in your javascript submit
> code. ****
>
>  ****
>
> ** **
>
> Yes, that's what I found. I send a lot of ajax request because the
> function that do the submit is this****
>
> ** **
>
> function save_response_with_ajax(t){****
>
>                       $('#edit_response_set_' + t).submit();****
>
> }****
>
> ** **
>
> I think that its way to simple and without any kind of validation and the
> radio button is this****
>
> ** **
>
> <%= rs_a_form.input :answer_id, :collection =>
> response_set.question.answers.map { |a| [build_choice(a) , a.id] }, :as
> => :radio, :input_html => {:onclick => 'save_response_with_ajax(' +
> response_set.id.to_s + ');'} %>****
>
> ** **
>
> Should I change that submit() into a $.ajax() ?****
>
> ** **
>
> Thanks ****
>
> ** **
>
> Javier ****
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to
> rubyonrails-talk+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.****
>
>  ****
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to
> rubyonrails-talk+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to