1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/actionview/app/assets/javascripts/rails-ujs.coffee
David Heinemeier Hansson 8de181dac6
Don't attach UJS form submission handlers to Turbo forms (#42476)
* Don't attach UJS form submission handlers to Turbo forms

Allows for easier migration of apps written for UJS, such that new work can be done with Turbo forms that are marked with data-turbo=true.

* Fix duplicate selectors

* Proper fix take 2
2021-06-15 17:31:33 +02:00

39 lines
2 KiB
CoffeeScript

#= require ./rails-ujs/BANNER
#= export Rails
#= require_self
#= require_tree ./rails-ujs/utils
#= require_tree ./rails-ujs/features
#= require ./rails-ujs/start
@Rails =
# Link elements bound by rails-ujs
linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]'
# Button elements bound by rails-ujs
buttonClickSelector:
selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])'
exclude: 'form button'
# Select elements bound by rails-ujs
inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]'
# Form elements bound by rails-ujs
formSubmitSelector: 'form:not([data-turbo=true])',
# Form input elements bound by rails-ujs
formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',
# Form input elements disabled during form submission
formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled'
# Form input elements re-enabled after form submission
formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled'
# Form file input elements
fileInputSelector: 'input[name][type=file]:not([disabled])'
# Link onClick disable selector with possible re-enable after remote submission
linkDisableSelector: 'a[data-disable-with], a[data-disable]'
# Button onClick disable selector with possible re-enable after remote submission
buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'