パスワードの表示・非表示を切り替えるテキストフィールドを作る方法
パスワードの表示・非表示を切り替えるテキストフィールドを作る方法を紹介します。このサンプルでは、パスワード入力用のテキストフィールドとチェックボックスを組み合わせ、チェックを入れると入力したパスワードを文字として表示し、チェックを外すと再び伏せ字へ戻せるようにします。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 ダウンロードしたけど、これをネット上で動かすにはどうするの?
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で利用できます。
コメント