1function toggleVisibility() { 2 const visibilityDivs = document.querySelectorAll(".toggle-visibility"); 3 const invisibilityDivs = document.querySelectorAll(".toggle-invisibility"); 4 5 visibilityDivs.forEach(function (div) { 6 div.addEventListener("click", function () { 7 const targetId = div.getAttribute("data-target"); 8 const targetInput = document.getElementById(targetId); 9 const invisibilityDiv = document.querySelector( 10 `.toggle-invisibility[data-target="${targetId}"]`, 11 ); 12 13 targetInput.type = "text"; 14 div.style.display = "none"; 15 invisibilityDiv.style.display = "block"; 16 }); 17 }); 18 19 invisibilityDivs.forEach(function (div) { 20 div.addEventListener("click", function () { 21 const targetId = div.getAttribute("data-target"); 22 const targetInput = document.getElementById(targetId); 23 const visibilityDiv = document.querySelector( 24 `.toggle-visibility[data-target="${targetId}"]`, 25 ); 26 27 targetInput.type = "password"; 28 div.style.display = "none"; 29 visibilityDiv.style.display = "block"; 30 }); 31 }); 32} 33document.addEventListener("DOMContentLoaded", function () { 34 toggleVisibility(); 35}); 36 37function isValidEmail(email) { 38 const emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; 39 if (!emailPattern.test(email)) { 40 return false; 41 } else { 42 return true; 43 } 44} 45 46const getUsernameFromMail = () => { 47 const email = document.getElementById("email-register"); 48 const username = document.getElementById("username-register"); 49 50 if (!email || !username) return; 51 if (!email.value) return; 52 if (username.value.trim().length > 0) return; 53 if (!email.value.trim().includes("@")) return; 54 55 username.value = email.value.split("@")[0]; 56}; 57 58const registerForm = document.getElementById("register-form"); 59if (registerForm) { 60 const password = document.getElementById("password-register"); 61 const confirmPassword = document.getElementById("password-register-repeat"); 62 const email = document.getElementById("email-register"); 63 const username = document.getElementById("username-register"); 64 const terms = document.getElementById("terms"); 65 const submitBtn = document.getElementById("register-submit"); 66 67 const inputs = registerForm.querySelectorAll("input"); 68 // inputs.forEach((input) => { 69 // input.addEventListener("invalid", (e) => { 70 // e.preventDefault(); 71 // input.classList.add("error"); 72 // const errorContainer = registerForm.querySelector( 73 // ".input-error-container", 74 // ); 75 // // create error span with class input-error 76 // const errorSpan = document.createElement("span"); 77 // errorSpan.classList.add("input-error"); 78 // errorSpan.innerText = input.validationMessage; 79 // // append the span, if there is no span with that message 80 // const errorSpans = errorContainer.querySelectorAll(".input-error"); 81 // let hasSpan = false; 82 // errorSpans.forEach((span) => { 83 // if (span.innerText === errorSpan.innerText) { 84 // hasSpan = true; 85 // } 86 // }); 87 // if (!hasSpan) { 88 // errorContainer.appendChild(errorSpan); 89 // } 90 // }); 91 92 // input.addEventListener("valid", (e) => { 93 // input.classList.remove("error"); 94 // const errorContainer = registerForm.querySelector( 95 // ".input-error-container", 96 // ); 97 // const errorSpans = errorContainer.querySelectorAll(".input-error"); 98 // errorSpans.forEach((span) => { 99 // if (span.innerText === input.validationMessage) { 100 // errorContainer.removeChild(span); 101 // } 102 // }); 103 // }); 104 // }); 105 106 const errorP = document.querySelector(".input-error"); 107 108 registerForm.addEventListener("submit", function (event) { 109 // console.log("here"); 110 // event.preventDefault(); 111 // 112 // if (password.value !== confirmPassword.value) { 113 // console.log("step2"); 114 // // password.classList.add("error"); 115 // confirmPassword.classList.add("error"); 116 // errorP.classList.remove("hidden"); 117 // 118 // return; 119 // } 120 // errorP.classList.add("hidden"); 121 // password.classList.remove("error"); 122 // confirmPassword.classList.remove("error"); 123 124 // Passwords match, continue with form submission 125 }); 126}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.