1
- const passwordElem = document . getElementById ( "password" ) ;
2
-
3
- const lengthElem = document . querySelector ( "#length" ) ;
4
- const lengthTextElem = document . querySelector ( "#lengthText" ) ;
5
-
6
- const addSymbols = document . querySelector ( "#symbols" ) ;
7
- const addNumbers = document . querySelector ( "#numbers" ) ;
8
- const addLowerCase = document . querySelector ( "#lowercase" ) ;
9
- const addUpperCase = document . querySelector ( "#uppercase" ) ;
10
- const addSimilar = document . querySelector ( "#similar" ) ;
11
-
12
- const copyButton = document . querySelector ( ".copy" ) ;
13
- const copySpan = document . querySelector ( ".copy span" ) ;
14
-
15
- const newPasswordArr = [ ] ;
1
+ const passwordElem = document . getElementById ( "password" ) ,
2
+ lengthElem = document . querySelector ( "#length" ) ,
3
+ lengthTextElem = document . querySelector ( "#lengthText" ) ,
4
+ addSymbolsElem = document . querySelector ( "#symbols" ) ,
5
+ addNumbersElem = document . querySelector ( "#numbers" ) ,
6
+ addLowerCaseElem = document . querySelector ( "#lowercase" ) ,
7
+ addUpperCaseElem = document . querySelector ( "#uppercase" ) ,
8
+ addSimilarElem = document . querySelector ( "#similar" ) ,
9
+ copyButtonElem = document . querySelector ( ".copy" ) ,
10
+ copyButtonTextElem = document . querySelector ( ".copy span" ) ;
11
+
12
+ const newPassword = [ ] ;
16
13
17
14
function showSymbol ( ) {
18
- const hasSymbols = addSymbols . checked ;
19
- const hasNumbers = addNumbers . checked ;
20
- const hasLowerCase = addLowerCase . checked ;
21
- const hasUpperCase = addUpperCase . checked ;
22
- const hasSimilar = addSimilar . checked ;
23
-
24
- console . log ( hasSymbols , hasNumbers , hasLowerCase , hasUpperCase , hasSimilar ) ;
25
-
15
+ newPassword . length = 0 ;
26
16
hideCopiedMessage ( ) ;
27
17
28
- newPasswordArr . length = 0 ;
29
-
30
- const lengthValue = lengthElem . value ;
31
- // const allowLength = newPasswordArr.length < lengthValue;
32
-
33
- while ( newPasswordArr . length < lengthValue ) {
34
- if ( hasSymbols ) {
35
- if ( newPasswordArr . length < lengthValue )
36
- newPasswordArr . push ( getRandomSymbol ( ) ) ;
37
- }
38
- if ( hasNumbers ) {
39
- if ( newPasswordArr . length < lengthValue )
40
- newPasswordArr . push ( getRandomFromChartCode ( 10 , 48 ) ) ;
41
- }
42
- if ( hasLowerCase ) {
43
- if ( newPasswordArr . length < lengthValue )
44
- newPasswordArr . push ( getRandomFromChartCode ( 26 , 97 ) ) ;
45
- }
46
- if ( hasUpperCase ) {
47
- if ( newPasswordArr . length < lengthValue )
48
- newPasswordArr . push ( getRandomFromChartCode ( 26 , 65 ) ) ;
49
- }
50
- if ( hasSimilar ) {
51
- if ( newPasswordArr . length < lengthValue )
52
- newPasswordArr . push ( getRandomSimilar ( ) ) ;
18
+ const lengthValue = + lengthElem . value ,
19
+ hasSymbols = addSymbolsElem . checked ,
20
+ hasNumbers = addNumbersElem . checked ,
21
+ hasLowerCase = addLowerCaseElem . checked ,
22
+ hasUpperCase = addUpperCaseElem . checked ,
23
+ hasSimilar = addSimilarElem . checked ;
24
+
25
+ const checkboxesCounter =
26
+ hasSymbols + hasNumbers + hasLowerCase + hasUpperCase + hasSimilar ;
27
+
28
+ if ( checkboxesCounter === 0 ) {
29
+ passwordElem . value = "select an option" ;
30
+ } else {
31
+ while ( newPassword . length < lengthValue ) {
32
+ if ( hasSymbols ) newPassword . push ( getRandomSymbol ( ) ) ;
33
+ if ( hasNumbers ) newPassword . push ( getRandomFromChartCode ( 10 , 48 ) ) ;
34
+ if ( hasLowerCase ) newPassword . push ( getRandomFromChartCode ( 26 , 97 ) ) ;
35
+ if ( hasUpperCase ) newPassword . push ( getRandomFromChartCode ( 26 , 65 ) ) ;
36
+ if ( hasSimilar ) newPassword . push ( getRandomSimilar ( ) ) ;
53
37
}
38
+ const generatedPassword = newPassword . join ( "" ) ;
39
+ const finalPassword = generatedPassword . slice ( 0 , lengthValue ) ;
40
+ passwordElem . value = finalPassword ;
54
41
}
55
42
56
- passwordElem . value = newPasswordArr . join ( "" ) ;
57
- lengthTextElem . innerHTML =
58
- lengthElem . value + " length: (" + passwordElem . value . length + ") " ;
43
+ lengthTextElem . textContent = lengthElem . value ;
59
44
}
60
45
61
46
function getRandomFromChartCode ( quantity , startFrom ) {
@@ -72,10 +57,10 @@ function getRandomSimilar() {
72
57
return similar [ Math . floor ( Math . random ( ) * similar . length ) ] ;
73
58
}
74
59
75
- const showCopiedMessage = ( ) => ( copySpan . style . display = "block" ) ;
76
- const hideCopiedMessage = ( ) => ( copySpan . style . display = "none" ) ;
60
+ const showCopiedMessage = ( ) => ( copyButtonTextElem . style . display = "block" ) ;
61
+ const hideCopiedMessage = ( ) => ( copyButtonTextElem . style . display = "none" ) ;
77
62
78
- copyButton . addEventListener ( "click" , ( ) => {
63
+ copyButtonElem . addEventListener ( "click" , ( ) => {
79
64
const input = passwordElem . value ;
80
65
81
66
/* Copy the text inside the text field */
0 commit comments