37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
(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); |