mirror of
https://github.com/JonasunderscoreJones/Website-v1.git
synced 2025-10-26 02:59:17 +01:00
Add files via upload
This commit is contained in:
parent
75684c5f91
commit
4a1ac1b789
9 changed files with 338 additions and 1 deletions
77
login/js/login.js
Normal file
77
login/js/login.js
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
class Login {
|
||||
constructor(form, fields) {
|
||||
this.form = form;
|
||||
this.fields = fields;
|
||||
this.validateonSubmit();
|
||||
}
|
||||
|
||||
validateonSubmit() {
|
||||
let self = this;
|
||||
|
||||
this.form.addEventListener("submit", (e) => {
|
||||
e.preventDefault();
|
||||
var error = 0;
|
||||
self.fields.forEach((field) => {
|
||||
const input = document.querySelector(`#${field}`);
|
||||
if (self.validateFields(input) == false) {
|
||||
error++;
|
||||
}
|
||||
});
|
||||
if (error == 0) {
|
||||
//do login api here
|
||||
localStorage.setItem("auth", 1);
|
||||
this.form.submit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
validateFields(field) {
|
||||
if (field.value.trim() === "") {
|
||||
this.setStatus(
|
||||
field,
|
||||
`${field.previousElementSibling.innerText} cannot be blank`,
|
||||
"error"
|
||||
);
|
||||
return false;
|
||||
} else {
|
||||
if (field.type == "password") {
|
||||
if (field.value.length < 8) {
|
||||
this.setStatus(
|
||||
field,
|
||||
`${field.previousElementSibling.innerText} must be at least 8 characters`,
|
||||
"error"
|
||||
);
|
||||
return false;
|
||||
} else {
|
||||
this.setStatus(field, null, "success");
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
this.setStatus(field, null, "success");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setStatus(field, message, status) {
|
||||
const errorMessage = field.parentElement.querySelector(".error-message");
|
||||
|
||||
if (status == "success") {
|
||||
if (errorMessage) {
|
||||
errorMessage.innerText = "";
|
||||
}
|
||||
field.classList.remove("input-error");
|
||||
}
|
||||
|
||||
if (status == "error") {
|
||||
errorMessage.innerText = message;
|
||||
field.classList.add("input-error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const form = document.querySelector(".loginForm");
|
||||
if (form) {
|
||||
const fields = ["username", "password"];
|
||||
const validator = new Login(form, fields);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue