forked from binary-com/binary-style
-
Notifications
You must be signed in to change notification settings - Fork 0
/
oauth.js
77 lines (70 loc) · 1.94 KB
/
oauth.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
var frmLogin,
txtEmail,
txtPass ;
var errClass = 'error-msg';
window.onload = function() {
frmLogin = document.getElementById('frmLogin');
txtEmail = document.getElementById('txtEmail');
txtPass = document.getElementById('txtPass' );
if (frmLogin) {
frmLogin.addEventListener('submit', function(e) {
if(!validate()) {
e.preventDefault();
return false;
}
});
}
if (txtEmail) {
txtEmail.addEventListener('input', function(e) {
if(txtEmail.classList.contains('hadError')) {
validateEmail();
}
});
txtEmail.addEventListener('change', function(e) {
validateEmail();
});
}
if (txtPass) {
txtPass.addEventListener('input', function(e) {
if(txtPass.classList.contains('hadError')) {
validatePass();
}
});
txtPass.addEventListener('change', function(e) {
validatePass();
});
}
};
function validate() {
var validEmail = validateEmail(),
validPass = validatePass();
return validEmail && validPass;
}
function validateEmail() {
return validateField(txtEmail, new RegExp(/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63}$/));
}
function validatePass() {
return validateField(txtPass, new RegExp(/^[ -~]{6,25}$/));
}
function validateField(element, regex) {
var hasError = true;
if(element) {
var value = (element.value || '').trim();
if (value && regex.test(value)) {
hasError = false;
}
}
setValidationStyle(element, hasError);
return !hasError;
}
function setValidationStyle(element, hasError) {
if(hasError) {
element.classList.add(errClass);
}
else {
element.classList.remove(errClass);
}
if(element.classList.contains(errClass)) {
element.classList.add('hadError');
}
}