Files
cs2440/catalog/js/create-account.js
T
jashton 3f844e4e06
Deploy CSIS 2440 / deploy (push) Canceled after 0s
finished final project
2025-05-05 21:53:39 -06:00

66 lines
2.0 KiB
JavaScript
Executable File

const username_field = document.querySelector("#username");
const password_field = document.querySelector("#password");
const v_password_field = document.querySelector("#v_password");
const submit_button = document.querySelector('input[type="submit"]');
const err_username = document.querySelector("#err_username");
const err_match = document.querySelector("#err_match");
const err_length = document.querySelector("#err_length");
const err_num = document.querySelector("#err_num");
function handle_input() {
const password = password_field.value;
const v_password = v_password_field.value;
if (password != v_password && v_password != "")
err_match.innerText = "Passwords do not match.";
else err_match.innerText = "";
if (password.length < 8)
err_length.innerText = "Password must be at least 8 characters long.";
else err_length.innerText = "";
const num_regex = /\d/;
if (!num_regex.test(password))
err_num.innerText = "Password must have at least 1 digit.";
else err_num.innerText = "";
if (
err_match.innerText == "" &&
err_length.innerText == "" &&
err_num.innerText == "" &&
err_username.innerText == "" &&
v_password != ""
)
submit_button.disabled = false;
else submit_button.disabled = true;
}
function handle_username() {
const username = username_field.value;
fetch("functions/user.php", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: "form_id=create-account&username=" + username,
})
.then((response) => {
if (!response.ok) {
console.log("Failed to check if username exists!");
}
return response.json(); // Parse response body as JSON
})
.then((data) => {
if (data["exists"] == "True")
err_username.innerText = "Username is taken.";
else err_username.innerText = "";
});
}
username_field.addEventListener("blur", handle_username);
password_field.addEventListener("input", handle_input);
v_password_field.addEventListener("input", handle_input);
submit_button.disabled = true;