Sha256: 82f8752404804384d43fff511c054c581a140c34a5f4f60bb9305fb48ee43dea
Contents?: true
Size: 1.27 KB
Versions: 11
Compression:
Stored size: 1.27 KB
Contents
/** * This script modifies the behavior of Abide form validation to address the issue of form validation errors * appearing prematurely in input fields. * * The primary goal is to hide error messages until the input field loses focus. */ class AbideFormValidatorFixer { initialize() { const forms = document.querySelectorAll("main [data-live-validate='true']"); forms.forEach((form) => { if (this.isElementVisible(form)) { this.setupForm(form); } }); } isElementVisible(element) { return element.offsetParent !== null && getComputedStyle(element).display !== "none"; } setupForm(form) { const inputs = form.querySelectorAll("input"); inputs.forEach((input) => { const errorElement = input.closest("label")?.querySelector(".form-error") || input.parentElement.querySelector(".form-error"); if (!errorElement) { return; } form.removeAttribute("data-live-validate"); input.addEventListener("input", this.hideErrorElement.bind(this, errorElement)); }); } hideErrorElement(errorElement) { errorElement.classList.remove("is-visible"); } } document.addEventListener("DOMContentLoaded", () => { const validatorFixer = new AbideFormValidatorFixer(); validatorFixer.initialize(); });
Version data entries
11 entries across 11 versions & 1 rubygems