app/javascript/beyond_canvas/initializers/buttons.js in beyond_canvas-0.15.0.pre vs app/javascript/beyond_canvas/initializers/buttons.js in beyond_canvas-0.15.1.pre

- old
+ new

@@ -1,9 +1,25 @@ const SPINNER_ANIMATION_TIMEOUT = 125; (function($) { const onDOMReady = function () { + const inputs = $('input, textarea, select').not(':input[type=button], :input[type=submit], :input[type=reset]'); + + inputs.each(function () { + var input = $(this); + + input.bind('invalid', function (e) { + if ($(input).is(':hidden')) { + e.preventDefault(); + } + $('button[class^="button"]').each(function () { + hideSpinner($(this)); + }); + enableActionElements(); + }); + }); + $('button[class^="button"]').each(function () { var button = $(this); // Add width attribute and save old width button.width(button.width()); @@ -30,17 +46,16 @@ enableActionElements(); }); }); }; - $(document).on('click', '[class^="button"]', function() { + $(document).on('click', '[class^="button"]', function () { disableActionElements(); showSpinner($(this)); }); $(document) - .ready(onDOMReady) .on('ready page:load turbolinks:load', onDOMReady); })(jQuery); function showSpinner(button) { // Adjust the width of the button @@ -65,8 +80,8 @@ $(this).addClass('actions--disabled'); }); } function enableActionElements() { $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function() { - $(this).removeClass("actions--disabled"); + $(this).removeClass('actions--disabled'); }); }