-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
119 lines (88 loc) · 2.63 KB
/
app.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
const firstName=document.getElementById('first-name');
const lastName=document.getElementById('last-name');
const email=document.getElementById('email');
const password=document.getElementById('password');
let submitBtn = document.getElementById('submit-btn');
let inputButtons = document.querySelectorAll('.input-control');
// Value is removed after refresh of Window or Tab
document.addEventListener('DOMContentLoaded',()=>{
for(let i=0; i<inputButtons.length-1; i++){
inputButtons[i].querySelector('input').value='';
}
});
submitBtn.addEventListener('click',(e)=>{
e.preventDefault();
validateInputs();
})
function validateInputs(){
const firstNameValue=firstName.value.trim();
const lastNameValue=lastName.value.trim();
const emailValue=email.value.trim();
const passwordValue=password.value.trim();
if(firstNameValue===''){
setError(firstName,'First Name cannot be empty');
}
else{
success(firstName);
}
if(lastNameValue===''){
setError(lastName,'Last Name cannot be empty');
}
else{
success(lastName);
}
if(emailValue==='')
{
setError(email,'Looks like this is not an email');
}
else if(!isValidEmail(emailValue)){
setError(email,'Email is invalid');
}
else{
success(email)
}
if(passwordValue===''){
setError(password,'Passwords cannot be empty');
}
else if(!isValidPassword(passwordValue)){
setError(password,'Password length must be 6 characters long');
}
else {
success(password);
}
}
// Regex
function isValidEmail(email){
const regex=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return regex.test(String(email).toLowerCase());
}
function isValidPassword(password){
const regex=/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,16}$/;
// console.log(regex.test(String(password)));
return regex.test(String(password));
}
// validation
function success(element){
const inputControl=element.parentElement;
const input=inputControl.querySelector('input');
const error=inputControl.querySelector('p');
error.innerHTML='';
inputControl.classList.remove('error');
inputControl.classList.add('success');
input.classList.remove('error');
}
function setError(element,message){
const inputControl=element.parentElement;
const errorDisplay=inputControl.querySelector('p');
const input=inputControl.querySelector('input');
inputControl.classList.add('error');
inputControl.classList.remove('success');
input.setAttribute('class','error');
if(inputControl.placeholder==='Email Address')
{
inputControl.placeholder='[email protected]';
}
input.placeholder=""
// console.log(errorDisplay);
errorDisplay.innerHTML=message;
}