パスワードの表示・非表示を切り替えるテキストフィールドを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

チェックボックス
無料ツール
チェックボックスを自由に作成

項目・並び方向・サイズ・色・枠線・角丸などを設定して、HTML・CSSを自動生成できます。

チェックボックス作成ツールを使う
新しいタブで開きます

パスワードの表示・非表示を切り替えるテキストフィールドを作る方法

パスワードの表示・非表示を切り替えるテキストフィールドを作る方法を紹介します。このサンプルでは、パスワード入力用のテキストフィールドとチェックボックスを組み合わせ、チェックを入れると入力したパスワードを文字として表示し、チェックを外すと再び伏せ字へ戻せるようにします。JavaScriptでinput要素のtype属性をpasswordとtextの間で切り替えるシンプルな仕組みです。

ログイン画面や会員サイトの登録フォームなど、利用者がパスワードを入力する場面で活用できます。通常は入力内容を伏せた状態にしながら、必要なときだけ利用者自身が内容を確認できるため、長いパスワードや複雑な文字列を入力するときの確認にも利用できます。チェックボックスを操作するだけなので、表示と非表示の切り替え方法も分かりやすい構成です。

HTMLではタイトル、説明文、ラベル、プレースホルダー、チェックボックスの表示文を変更できます。CSSではフォームの横幅、余白、背景色、枠線、角丸、文字サイズなどを調整でき、JavaScriptではチェックボックスの状態に応じてパスワードの表示状態を変更します。画面幅に合わせてフォームが縮小されるレスポンシブ対応なので、スマートフォン・タブレット・PCで利用できるパスワード入力欄として導入できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

ログインフォーム

チェックを入れるとパスワードを表示します。

パスワードを入力して「パスワードを表示する」にチェックを入れると入力内容を確認できます。チェックを外すと再び伏せ字になります。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>パスワードの表示・非表示を切り替えるテキストフィールド</title>

  <!-- CSSファイル -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- パスワード入力フォーム全体 -->
  <div class="password-visibility-toggle-form_wrap">

    <!-- タイトル -->
    <div class="password-visibility-toggle-form_title">
      ログインフォーム
    </div>

    <!-- 説明文 -->
    <p class="password-visibility-toggle-form_text">
      チェックを入れるとパスワードを表示します。
    </p>

    <!-- 入力項目 -->
    <div class="password-visibility-toggle-form_field">

      <!-- パスワード入力欄のラベル -->
      <label
        class="password-visibility-toggle-form_label"
        for="password">
        パスワード
      </label>

      <!-- パスワード入力用テキストフィールド -->
      <input
        class="password-visibility-toggle-form_input"
        type="password"
        id="password"
        name="password"
        placeholder="パスワードを入力">

      <!-- パスワード表示・非表示切り替え -->
      <label class="password-visibility-toggle-form_check">
        <input
          class="password-visibility-toggle-form_checkbox"
          type="checkbox">
        パスワードを表示する
      </label>

    </div>

  </div>

  <!-- JavaScriptファイル -->
  <script src="script.js"></script>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
A

Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。

InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではパスワード入力用のテキストフィールドと表示切り替え用のチェックボックスを配置し、CSSでフォーム全体や入力欄のデザインを設定します。JavaScriptではチェックボックスの状態を確認し、パスワード入力欄のtype属性をpasswordとtextの間で切り替えることで、入力内容の表示・非表示を変更します。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.htmlはパスワード入力フォームを構成するファイルです。「ログインフォーム」のタイトル、説明文、パスワードのラベル、プレースホルダー、「パスワードを表示する」の文字を変更できます。

style.cssはフォーム全体、パスワード入力欄、チェックボックスのデザインを設定するファイルです。フォームの横幅、余白、背景色、枠線、角丸、文字サイズ、フォーカス時の色などを変更できます。

script.jsはパスワードの表示・非表示を切り替えるファイルです。チェックボックスにチェックが入ると入力欄のtype属性をtextへ変更し、チェックを外すとpasswordへ戻します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。パスワード入力欄へ文字を入力すると、通常は伏せ字で表示されます。「パスワードを表示する」にチェックを入れると入力内容が文字として表示され、チェックを外すと再び伏せ字へ戻ります。

カスタマイズできる内容
index.htmlではフォームのタイトル、説明文、パスワードのラベル、プレースホルダー、チェックボックス横の文字を変更できます。style.cssではフォーム全体の最大横幅、内側余白、背景色、枠線、角丸、入力欄の文字サイズ、フォーカス時の枠線や影、チェックボックスのサイズや色などを変更できます。

数値調整
style.css
max-width:520px;
フォーム全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

margin:40px auto;
フォーム全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:32px;
フォーム全体の内側余白です。値を大きくすると内容と枠線の間隔が広がり、小さくすると詰まった表示になります。

border-radius:18px;
フォーム全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:22px;
タイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると控えめになります。

gap:8px;
入力項目の間隔です。値を大きくするとラベルと入力欄の間隔が広がり、小さくすると狭くなります。

padding:14px 16px;
パスワード入力欄の内側余白です。上下の14pxを大きくすると入力欄が高くなり、左右の16pxを大きくすると文字と枠線の間隔が広がります。

border-radius:10px;
パスワード入力欄の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:16px;
入力文字のサイズです。値を大きくすると入力する文字が大きく表示されます。

box-shadow:0 0 0 3px ...
パスワード入力欄を選択したときに表示する外側の強調範囲です。3pxを大きくすると影が広がり、小さくすると控えめになります。

margin-top:10px;
パスワード入力欄と表示切り替え用チェックボックスの間隔です。値を大きくすると間隔が広がります。

width:18px;とheight:18px;
チェックボックスの大きさです。値を大きくするとチェックボックスが大きくなり、小さくすると小さくなります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:520pxによって、画面幅に合わせてフォーム全体が縮小されます。また、画面幅640px以下ではpadding:24px 18px;へ変更して内側余白を小さくしているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント