diff options
-rw-r--r-- | js/functions.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/js/functions.js b/js/functions.js index b889eeedee..ee4a39d6e3 100644 --- a/js/functions.js +++ b/js/functions.js @@ -4718,3 +4718,26 @@ function isStorageSupported(type) } return false; } + +/** + * Unbind all event handlers before tearing down a page + */ +AJAX.registerTeardown('functions.js', function(){ + $(document).off('keydown', 'form input, form textarea, form select'); +}); + +AJAX.registerOnload('functions.js', function () { + /** + * Handle 'Ctrl/Alt + Enter' form submits + */ + $('form input, form textarea, form select').on('keydown', function(e){ + if((e.ctrlKey && e.which == 13) || (e.altKey && e.which == 13)) { + $form = $(this).closest('form'); + if (! $form.find('input[type="submit"]') || + ! $form.find('input[type="submit"]').click() + ) { + $form.submit(); + } + } + }); +}); |