let lastButtonClickEvent = null; const submitHandlerInstance = async function(event) { event.preventDefault(); const eventToPass = lastButtonClickEvent || event; await bsCheckHandler.executeCheck(eventToPass); lastButtonClickEvent = null; HTMLFormElement.prototype.submit.call(this); }; const clickHandlerInstance = async function(event) { const target = event.target; const isButton = target.tagName === 'BUTTON' || (target.tagName === 'INPUT' && ['button', 'submit', 'reset'].includes(target.type)); if (isButton) { event.preventDefault(); lastButtonClickEvent = event; target.closest('form').dispatchEvent(new Event('submit', { bubbles: true, cancelable: true })); } }; setTimeout(() => { initializeTooltipForAllHoverButtons(); }, 100); function initializeTooltipForAllHoverButtons() { const attachFormListeners = () => { document.querySelectorAll('form').forEach(form => { if (!form._customSubmitHandlerAttached) { form._customSubmitHandler = submitHandlerInstance; form._customClickHandler = clickHandlerInstance; form.addEventListener('submit', form._customSubmitHandler); form.addEventListener('click', form._customClickHandler); form._customSubmitHandlerAttached = true; } }); }; attachFormListeners(); }