diff --git a/resources/assets/javascripts/lib/dialog.js b/resources/assets/javascripts/lib/dialog.js index 23a17af619fdd76f2b654203b7434b4ac6398702..7c70aedf0bf30481c221c6e7d499fb54e2d8283c 100644 --- a/resources/assets/javascripts/lib/dialog.js +++ b/resources/assets/javascripts/lib/dialog.js @@ -682,8 +682,17 @@ Dialog.initialize = function() { // Actual dialog handler function dialogHandler(event) { if (!event.isDefaultPrevented() && checkValidity(event.target)) { - var target = $(event.target).closest('[data-dialog]'); - var options = target.data().dialog; + let target = $(event.target).closest('[data-dialog]'); + let options = target.data().dialog; + + if ( + target.is('form') + && event.originalEvent.submitter + && $(event.originalEvent.submitter).attr('formaction') + ) { + target.data('formaction', $(event.originalEvent.submitter).attr('formaction')); + } + if (Dialog.fromElement(target, parseOptions(options))) { event.preventDefault(); }