パスワードの表示/非表示を切り替えるアイコンボタンを実装する
以下のようにHTMLとJavaScriptを組み合わせて実装します。以下は、ログイン画面でパスワードの表示/非表示を切り替える方法を示す例です。
login.html
<!DOCTYPE html>
<html lang="jp">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Page</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-4">
<h2>Login</h2>
<form id="login-form">
<div class="mb-3">
<label for="username" class="form-label">Username</label>
<input type="text" class="form-control" id="username" required>
</div>
<div class="mb-3">
<label for="password" class="form-label">Password</label>
<div class="input-group">
<input type="password" class="form-control" id="password" required>
<button class="btn btn-outline-secondary" type="button" id="toggle-password">
<i class="bi bi-eye-slash" id="toggle-password-icon"></i>
</button>
</div>
</div>
<button type="submit" class="btn btn-primary">Login</button>
</form>
</div>
</div>
</div>
</body>
</html>
<script>
$(document).ready(function () {
$('#toggle-password').click(function () {
const passwordInput = $('#password');
const passwordIcon = $('#toggle-password-icon');
const type = passwordInput.attr('type') === 'password' ? 'text' : 'password';
passwordInput.attr('type', type);
// Toggle the icon class
if (type === 'text') {
passwordIcon.removeClass('bi-eye-slash').addClass('bi-eye');
} else {
passwordIcon.removeClass('bi-eye').addClass('bi-eye-slash');
}
});
});
</script>