Add Toggle Multiple Form Visibility project
This commit is contained in:
parent
5f215211bb
commit
6c259f456f
4 changed files with 92 additions and 0 deletions
|
@ -11,6 +11,7 @@ func main() {
|
|||
|
||||
mux.Handle("GET /toggle-password-visibility/", http.StripPrefix("/toggle-password-visibility", http.FileServer(http.Dir("toggle-password-visibility"))))
|
||||
mux.Handle("GET /toggle-multiple-fields/", http.StripPrefix("/toggle-multiple-fields", http.FileServer(http.Dir("toggle-multiple-fields"))))
|
||||
mux.Handle("GET /toggle-multiple-forms/", http.StripPrefix("/toggle-multiple-forms", http.FileServer(http.Dir("toggle-multiple-forms"))))
|
||||
|
||||
log.Println("Start the web server...")
|
||||
err := http.ListenAndServe(":8080", mux)
|
||||
|
|
7
js-essentials/toggle-multiple-forms/README.md
Normal file
7
js-essentials/toggle-multiple-forms/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Toggle Multiple Password Fields
|
||||
|
||||
A script that let's users toggle the visibility with the ability to toggle multiple fields.
|
||||
|
||||
# Reference
|
||||
|
||||
* https://leanwebclub.com/learn/js-essentials/project-toggle-multiple-password-fields/
|
65
js-essentials/toggle-multiple-forms/index.html
Normal file
65
js-essentials/toggle-multiple-forms/index.html
Normal file
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" data-bs-theme="dark">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
|
||||
<title>Toggle Multiple Forms Password Visibility</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Toggle Multiple Forms Password Visibility</h1>
|
||||
|
||||
<h2>Change Username</h2>
|
||||
<p>Enter your username and password to change your username.</p>
|
||||
<form>
|
||||
<div>
|
||||
<label for="username">Username</label>
|
||||
<input type="text" name="username" id="username">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="password">Password</label>
|
||||
<input type="password" name="password" id="password">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="show-password">
|
||||
<input type="checkbox" name="show-password" id="show-password">
|
||||
Show password
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<button type="submit">Change Username</button>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<h2>Change Password</h2>
|
||||
<p>Enter your current password and new password below.</p>
|
||||
|
||||
<form>
|
||||
<div>
|
||||
<label for="current-password">Current Password</label>
|
||||
<input type="password" name="current-password" id="current-password">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="new-password">New Password</label>
|
||||
<input type="password" name="new-password" id="new-password">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="show-passwords">
|
||||
<input type="checkbox" name="show-passwords" id="show-passwords">
|
||||
Show passwords
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<button type="submit">Change Passwords</button>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
</html>
|
19
js-essentials/toggle-multiple-forms/script.js
Normal file
19
js-essentials/toggle-multiple-forms/script.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
let passwordFields = document.querySelectorAll('input[type="password"]');
|
||||
let checkboxes = document.querySelectorAll('input[type="checkbox"]');
|
||||
let state = {true: "text", false: "password" };
|
||||
|
||||
window.addEventListener('click', function (event) {
|
||||
if (event.target.matches('#show-password')) {
|
||||
for (let field of passwordFields) {
|
||||
field.type=state[event.target.checked];
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.log("Show passwords toggle");
|
||||
for (let field of passwordFields) {
|
||||
field.type=state[event.target.checked];
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
Loading…
Reference in a new issue