やりたいこと
下記ページを参考に、ログインフォームで
パスワード入力の際に目のアイコンを押すと、パスワード表示・非表示の切り替えができる欄を
【パスワード・パスワード確認用】の計2つ作成したいです。
https://kishiken.com/jq/input-password-toggle/
困っていること
パスワード1つの場合はできたのですが、確認入力用の2つ目の同様のパスワード欄を作成した際に
2つ目のパスワード表示・非表示が切り替わりません。
試したこと
class名やidに変更をして該当のJavaScript部分を2回記述するなどしましたが
うまくいきませんでした。
変更したのは、下記の中のclass3箇所です。
.js-password-toggle
.js-password
.js-password-label
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>テスト</title> <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> </head> <body> <form> <div class="box"> <p>Password</p> <div class="box-pass"> <input class="js-password" type="password" value="" id="pass-login" name="pass-login" maxlength="10" placeholder="99999" required="required"> <input class="js-password-toggle button__input" id="password--eye" type="checkbox" name="password01"> <label class="js-password-label button__label" for="password--eye"><i class="fas fa-eye"></i></label> </div> </div> <div class="box"> <p>Password(確認)</p> <div class="box-pass"> <input class="js-password" type="password" value="" id="pass-login-kakunin" name="pass-login-kakunin" maxlength="10" placeholder="99999" required="required"> <input class="js-password-toggle button__input" id="kakunin--eye" type="checkbox" name="password02"> <label class="js-password-label button__label" for="kakunin--eye"><i class="fas fa-eye"></i></label> </div> </div> </form> <style type="text/css"> .box { display: flex; align-items: center; } p { padding-right: 20px; } .box-pass { width: 200px; position: relative; } .box-pass input { width: 200px; height: 30px; } input.button__input { display: none; } .button__label { position: absolute; right: 10px; top: 5px; } </style> <footer> </footer> <script> const passwordToggle = document.querySelector('.js-password-toggle'); passwordToggle.addEventListener('change', function () { const password = document.querySelector('.js-password'), passwordLabel = document.querySelector('.js-password-label'); if (password.type === 'password') { password.type = 'text'; passwordLabel.innerHTML = '<i class="fas fa-eye-slash"></i>'; } else { password.type = 'password'; passwordLabel.innerHTML = '<i class="fas fa-eye"></i>'; } password.focus(); }); </script> </body> </html>
ご教示いただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー