prototype-ujs icon indicating copy to clipboard operation
prototype-ujs copied to clipboard

Rails 3 disable with remote form button immediately re-enabled

Open nielsm opened this issue 13 years ago • 1 comments

Taken from:https://rails.lighthouseapp.com/projects/8994/tickets/5714-rails3-disable_with-remote-form-button-immediately-gets-re-enabled

When submitting a remote form with a "disable_with" option, the reasonable expectation is that the button will be re-enabled after the ajax response. Instead, the button is immediately re-enabled after the request is made but before the response is received. The problem is that the re-enabling code in rails.js (lines 167-174) is fired on ajax:after:

document.on("ajax:after", "form", function(event, element) { var inputs = element.select("input[type=submit][disabled=true][data-disable-with]"); inputs.each(function(input) { input.value = input.readAttribute('data-original-value'); input.removeAttribute('data-original-value'); input.disabled = false; }); }); If changed to be ajax:complete (line 167):

document.on("ajax:complete", "form", function(event, element) { //original code here } The code works as expected: the button is disabled until the ajax response is received.

nielsm avatar Apr 08 '11 15:04 nielsm

I get the exact same behaviour. I have had to rename the "ajax:after" event handler to an "ajax:complete" one to get my button to be disabled. Is this issue being fixed any time soon or should we settle with renaming the event handler?

tobioboye avatar Mar 06 '12 05:03 tobioboye