1
1
<h3 >Register</h3 >
2
- <form action =" /register" method =" POST" >
3
- <label for =" username" ><b >Username</b ></label >
4
- <input type =" text" placeholder =" Enter Username" name =" username" required >
2
+ <form action =" /register" method =" POST" >
3
+ <div >
4
+ <div >
5
+ <label for =" username" style =" font-weight : bold ;" >Username</label >
6
+ <input type =" text" placeholder =" Enter Username" name =" username" required id =" username"
7
+ style =" margin : 0 ; width : 100% ;" >
8
+ <div id =" usernameError" style =" color : red ; display : none ; width : 100% ;" ></div >
9
+ <!-- Error message container for username -->
10
+ </div >
11
+
12
+ <div >
13
+ <label for =" password" style =" font-weight : bold ;" >Password</label >
14
+ <input type =" password" placeholder =" Enter Password" name =" password" required id =" password"
15
+ style =" margin : 0 ; width : 100% ;" >
16
+ <div id =" passwordError" style =" color : red ; display : none ; width : 100% ;" ></div >
17
+ <!-- Error message container for password -->
18
+ </div >
19
+
20
+ <div style =" display : flex ; justify-content : flex-start ;" >
21
+ <input type =" submit" value =" Register" class =" btn" >
22
+ </div >
23
+ </div >
5
24
6
- <label for =" password" ><b >Password</b ></label >
7
- <input type =" password" placeholder =" Enter Password" name =" password" required >
8
25
9
- <input type =" submit" value =" Register" class =" btn" >
10
26
</form >
11
27
28
+
29
+ <style >
30
+ form > div {
31
+ display : flex ;
32
+ flex-direction : column ;
33
+ align-items : flex-start ;
34
+ width : 100% ;
35
+ gap : 1rem ;
36
+ }
37
+
38
+ form > div div {
39
+ display : flex ;
40
+ flex-direction : column ;
41
+ align-items : flex-start ;
42
+ width : 100% ;
43
+ }
44
+ </style >
45
+
46
+ <script >
47
+ function validateForm () {
48
+ const isUsernameValid = validateUsername ();
49
+ const isPasswordValid = validatePassword ();
50
+ return isUsernameValid && isPasswordValid; // Allow form submission only if both are valid
51
+ }
52
+
53
+ function validateUsername () {
54
+ const username = document .getElementById (' username' ).value ;
55
+ const usernameError = document .getElementById (' usernameError' );
56
+ const minLength = 3 ; // Minimum length for username
57
+
58
+ // Clear previous error message
59
+ usernameError .style .display = ' none' ;
60
+ usernameError .textContent = ' ' ;
61
+
62
+ if (username .length < minLength || ! / ^ [a-zA-Z0-9 ] + $ / .test (username)) {
63
+ usernameError .textContent = ' Username must be at least 3 characters long and contain only alphanumeric characters.' ;
64
+ usernameError .style .display = ' block' ; // Show error message
65
+ return false ; // Invalid username
66
+ }
67
+ return true ; // Valid username
68
+ }
69
+
70
+ function validatePassword () {
71
+ const password = document .getElementById (' password' ).value ;
72
+ const passwordError = document .getElementById (' passwordError' );
73
+ const minLength = 8 ;
74
+ const hasNumber = / \d / ;
75
+ const hasSpecialChar = / [!@#$%^&*] / ;
76
+
77
+ // Clear previous error message
78
+ passwordError .style .display = ' none' ;
79
+ passwordError .textContent = ' ' ;
80
+
81
+ if (password .length < minLength || ! hasNumber .test (password) || ! hasSpecialChar .test (password)) {
82
+ passwordError .textContent = ' Password must be at least 8 characters long, contain a number, and a special character.' ;
83
+ passwordError .style .display = ' block' ; // Show error message
84
+ return false ; // Prevent form submission
85
+ }
86
+ return true ; // Allow form submission
87
+ }
88
+
89
+ // Add event listeners for real-time validation
90
+ document .getElementById (' username' ).addEventListener (' input' , validateUsername);
91
+ document .getElementById (' password' ).addEventListener (' input' , validatePassword);
92
+ </script >
0 commit comments