prevents double submit for form buttons

This commit is contained in:
David Gil
2015-09-10 16:56:04 +02:00
parent cc7db09aff
commit 81b1549d11
2 changed files with 29 additions and 0 deletions

View File

@@ -33,6 +33,7 @@ var initialize_modules = function() {
App.Dropdown.initialize();
App.LocationChanger.initialize();
App.CheckAllNone.initialize();
App.PreventDoubleSubmission.initialize();
};
$(function(){

View File

@@ -0,0 +1,28 @@
App.PreventDoubleSubmission =
disable_button: (button) ->
unless button.hasClass('disabled')
loading = button.data('loading') ? 'Sending ...'
button.addClass('disabled').attr('disabled', 'disabled')
button.data('text', button.val())
button.val(loading)
reset_button: (button) ->
if button.hasClass('disabled')
button_text = button.data('text')
button.removeClass('disabled').attr('disabled', null)
if button_text
button.val(button_text)
button.data('text', null)
initialize: ->
$('form').on('submit', event, ->
$form = $(this)
button = $form.find('.button')
App.PreventDoubleSubmission.disable_button(button)
).on('ajax:success', ->
$form = $(this)
button = $form.find('.button')
App.PreventDoubleSubmission.reset_button(button)
)
false