-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
74 lines (64 loc) · 2.12 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const form = document.querySelector("form");
const inputContainers = document.querySelectorAll(".input__container");
const radioBtnContainers = document.querySelectorAll(".radio__container");
const successMsg = document.querySelector(".success__message");
// selects radio buttons onclick of their container
radioBtnContainers.forEach((radioBtnContainer) => {
radioBtnContainer.addEventListener("click", () => {
radioBtnContainer.querySelector("input").checked = true;
});
});
// check if each input is valid and show the respective error if it isn't when clicked the Submit Button
function inputValidator() {
let allValid = true;
inputContainers.forEach((inputContainer) => {
const inputs = inputContainer.querySelectorAll("input");
const textarea = inputContainer.querySelector("textarea");
let valid = false;
inputs.forEach((input) => {
if (input.type === "text" && input.value !== "") {
valid = true;
} else if (input.type === "email" && validateEmail(input.value)) {
valid = true;
} else if (input.type === "radio" && input.checked) {
valid = true;
} else if (input.checked) {
valid = true;
}
});
if (!valid) {
inputContainer.classList.add("container-error");
} else {
inputContainer.classList.remove("container-error");
}
if (textarea) {
if (!textarea.value) {
inputContainer.classList.add("container-error");
} else {
inputContainer.classList.remove("container-error");
}
}
});
inputContainers.forEach((inputContainer) => {
if (inputContainer.classList.contains("container-error")) {
allValid = false;
}
});
if (allValid) {
form.reset();
successMsg.style.visibility = "visible";
setTimeout(() => {
successMsg.style.visibility = "hidden";
}, 3000);
}
}
// function to check if the email is valid
function validateEmail(email) {
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
}
const submitBtn = document.querySelector("#submitBtn");
submitBtn.addEventListener("click", (e) => {
e.preventDefault();
inputValidator();
});