-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsignup.js
93 lines (79 loc) · 2.35 KB
/
signup.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
const form = document.querySelector('#form')
const username = document.querySelector('#username');
const password = document.querySelector('#Password');
const email = document.querySelector('#email');
const cpassword = document.querySelector('#cpassword');
form.addEventListener('submit',(e)=>{
if(!validateInputs()){
e.preventDefault();
}
})
function validateInputs(){
const usernameVal = username.value.trim()
const passwordVal = password.value.trim();
const emailVal = email.value.trim();
const cpasswordVal = cpassword.value.trim();
let success = true
if(usernameVal===''){
success=false;
setError(username,'Username is required')
}
else{
setSuccess(username)
}
if(passwordVal === ''){
success= false;
setError(password,'Password is required')
}
else if(passwordVal.length<8){
success = false;
setError(password,'Password must be atleast 8 characters long')
}
else{
setSuccess(password)
}
if(cpasswordVal === ''){
success = false;
setError(cpassword,'Confirm password is required')
}
else if(cpasswordVal!==passwordVal){
success = false;
setError(cpassword,'Password does not match')
}
else{
setSuccess(cpassword)
}
if(emailVal===''){
success = false;
setError(email,'Email is required')
}
else if(!validateEmail(emailVal)){
success = false;
setError(email,'Please enter a valid email')
}
else{
setSuccess(email)
}
return success;
}
function setError(element,message){
const inputGroup = element.parentElement;
const errorElement = inputGroup.querySelector('.error')
errorElement.innerText = message;
inputGroup.classList.add('error')
inputGroup.classList.remove('success')
}
function setSuccess(element){
const inputGroup = element.parentElement;
const errorElement = inputGroup.querySelector('.error')
errorElement.innerText = '';
inputGroup.classList.add('success')
inputGroup.classList.remove('error')
}
const validateEmail = (email) => {
return String(email)
.toLowerCase()
.match(
/^(([^<>()[\]\\.,;:\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,}))$/
);
};