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');
});
}