Skip to content

Instantly share code, notes, and snippets.

@tlux
Last active December 20, 2015 17:28
Show Gist options
  • Select an option

  • Save tlux/6168660 to your computer and use it in GitHub Desktop.

Select an option

Save tlux/6168660 to your computer and use it in GitHub Desktop.
Submit Disabler
createArbitraryField = ($button) ->
$form = $button.closest('form')
buttonName = $button.attr('name')
buttonValue = $button.val()
$('<input />', type: 'hidden', name: buttonName, value: buttonValue).appendTo($form)
destroyArbitraryField = ($button) ->
$form = $button.closest('form')
buttonName = $button.attr('name')
$form.find("input[type='hidden'][name='#{buttonName}']").remove()
$(document)
.on 'click', ':submit', ->
$button = $(@)
createArbitraryField($button)
.on 'submit', "form:not([data-remote=true])", ->
$(@).find(':submit').prop('disabled', true)
.on 'ajax:beforeSend', "form[data-remote=true]", ->
$(@).find(':submit').prop('disabled', true)
.on 'ajax:complete', "form[data-remote=true]", ->
$button = $(@).find(':submit')
$button.prop('disabled', false)
destroyArbitraryField($button)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment