(function () { const form = document.querySelector('form.needs-validation'); form.addEventListener('submit', function (e) { if (!form.checkValidity()) { e.preventDefault(); e.stopPropagation(); } const pw1 = document.getElementById('password'); const pw2 = document.getElementById('password2'); if (pw1.value !== pw2.value) { e.preventDefault(); e.stopPropagation(); pw2.setCustomValidity("Hasła muszą być identyczne."); pw2.reportValidity(); } else { pw2.setCustomValidity(""); } form.classList.add('was-validated'); }, false); })(); const pw = document.getElementById('password'); const toggle = document.getElementById('togglePw'); toggle.addEventListener('click', () => { const isText = pw.type === 'text'; pw.type = isText ? 'password' : 'text'; toggle.textContent = isText ? 'Pokaż' : 'Ukryj'; pw.focus(); }); const caps = document.getElementById('capsWarning'); function handleCaps(e) { const capsOn = e.getModifierState && e.getModifierState('CapsLock'); caps.style.display = capsOn ? 'inline' : 'none'; } pw.addEventListener('keyup', handleCaps); pw.addEventListener('keydown', handleCaps);