目のマークを押したらパスワードが見える入力欄

パスワード入力欄に目のマークがついていて、押すとパスワードが見えるようになっているサイトが増えました。(一時期のMicrosoft Edgeではブラウザ機能としてついていましたが、今はありません)
この機能、けっこう簡単に実装できますので、その方法を紹介します。

目次

CodePenデモ

まず動いているものをご覧ください。

See the Pen Password input visible/invisible by Tsuneaki Hasekura (@tsunet111) on CodePen.

パスワードが見える仕組み

仕組みはいたってシンプルで、<input type="password"> と書けばパスワードは見えなくなり、<input type="text"> とすればパスワードが見えるようになります。これをJavaScriptで切り替えます。

コード解説

CSSで見栄え調整している部分の解説は割愛します。
目のアイコンをクリックしたら、以下の関数(メソッド)が呼び出されます。

JavaScript
function passwordview() {
  if (document.querySelector("input").type == "password") {
    //input type="password" だった場合は、input type="text" に切り替えます
    document.querySelector("input").type = "text";
    //ボタンの見栄えを切り替えます。
    document.querySelector("i").classList.remove('fa-eye');
    document.querySelector("i").classList.add('fa-eye-slash');
  } else {
    //そうではなかったら、逆に、input type="password" に切り替えます。
    document.querySelector("input").type = "password";
    //ボタンの見栄えを切り替えます。
    document.querySelector("i").classList.remove('fa-eye-slash');
    document.querySelector("i").classList.add('fa-eye');
  }
}

非常にシンプルに実装できるわりに、UXが向上しますので、ぜひご活用ください。