From 9c0379da5f49e51ebb4b7697e472e4fad243df2c Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 12 May 2022 12:34:19 +0000 Subject: [PATCH] check validity of forms before proceeding, fixes #772 Closes #772 Merge request studip/studip!412 --- resources/assets/javascripts/lib/dialog.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/resources/assets/javascripts/lib/dialog.js b/resources/assets/javascripts/lib/dialog.js index 0ce30c6eef6..bd1cc7b4dd6 100644 --- a/resources/assets/javascripts/lib/dialog.js +++ b/resources/assets/javascripts/lib/dialog.js @@ -667,9 +667,17 @@ Dialog.removeHeaderHandler = function (header) { }; Dialog.initialize = function() { + function checkValidity(element) { + const form = element.closest('form'); + if (form === null) { + return true; + } + return form.checkValidity(); + } + // Actual dialog handler function dialogHandler(event) { - if (!event.isDefaultPrevented()) { + if (!event.isDefaultPrevented() && checkValidity(event.target)) { var target = $(event.target).closest('[data-dialog]'); var options = target.data().dialog; if (Dialog.fromElement(target, parseOptions(options))) { @@ -679,7 +687,7 @@ Dialog.initialize = function() { } function clickHandler(event) { - if (!event.isDefaultPrevented()) { + if (!event.isDefaultPrevented() && checkValidity(event.target)) { var element = $(event.target).closest(':submit,input[type="image"]'); var form = element.closest('form'); var action = element.attr('formaction'); -- GitLab