From e34a3ab2ce91fbb42865cc5f69b135a3a656a5f4 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 9 Sep 2025 08:20:54 +0200 Subject: [PATCH] Fix html-based form errors not being scrolled to in iOS/Safari (#5448) --- src/pretix/static/pretixpresale/js/ui/main.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js index f19d7b529a..0a5c715523 100644 --- a/src/pretix/static/pretixpresale/js/ui/main.js +++ b/src/pretix/static/pretixpresale/js/ui/main.js @@ -225,6 +225,16 @@ var form_handlers = function (el) { }; function setup_basics(el) { + el.find("form").attr("novalidate", true).on("submit", function (e) { + if (!this.checkValidity()) { + var input = this.querySelector(":invalid:not(fieldset)"); + (input.labels[0] || input).scrollIntoView(); + // only use reportValidity, which usually sets focus on element + // input.focus() opens dropdowns, which is not what we want + input.reportValidity(); + e.preventDefault(); + } + }); el.find("input[data-toggle=radiocollapse]").change(function () { $($(this).attr("data-parent")).find(".collapse.in").collapse('hide'); $($(this).attr("data-target")).collapse('show');