JavaScriptで入力フィールドにフォーカスを維持しながらコンソールにメッセージを表示する方法
入力フィールドからフォーカスが外れた際に自動的にフォーカスを戻しながら、コンソールにメッセージを表示したい場合は、JavaScriptの focus() メソッドを活用することで実現できます。このテクニックを使えば、ユーザーがテキストボックスに入力を完了するまで、他の要素へフォーカスが移動しないように制御できます。
実装例
以下のコードでは、blur イベント(フォーカスが外れたときに発生)を検知してコンソールにメッセージを出力し、その後 focus() を呼び出すことで再び入力フィールドにフォーカスを設定しています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input id='txtInput' placeholder="値を入力してください......."/>
<button id='submitBtn'>送信</button>
<script>
const submitButton = document.getElementById('submitBtn');
submitButton.addEventListener('click', () => {
console.log('サーバーに情報を送信しています.....');
})
const txtInput = document.getElementById('txtInput');
txtInput.addEventListener('blur', () => {
console.log('テキストボックスに新しい値を入力してください......');
txtInput.focus();
});
txtInput.focus();
</script>
</body>
</html>
コードの解説
このプログラムのポイントは以下の3点です。
- ページ読み込み時:最後の行にある
txtInput.focus()により、ページを開いた直後にテキストボックスへ自動的にフォーカスが移ります。 - blurイベントの処理:ユーザーが入力フィールド以外の場所をクリックしてフォーカスが外れると、
blurイベントが発生し、コンソールに入力を促すメッセージが表示されます。 - フォーカスの強制的な復帰:
txtInput.focus()を呼び出すことで、すぐに入力フィールドへフォーカスが戻ります。これにより、何か値を入力するまでフォーカスが固定された状態になります。
なお、「送信」ボタンをクリックした場合は、クリック操作によって一時的にblurイベントが発生しますが、その後ボタン側のclickイベントが処理され、「サーバーに情報を送信しています」というメッセージがコンソールに出力されます。
プログラムの実行方法
上記のコードを「index.html」などの名前で保存し、VS Codeエディタでファイルを右クリックして「Open with Live Server」を選択すると、ブラウザ上でプログラムを実行できます。Live Server拡張機能がインストールされていない場合は、保存したHTMLファイルを直接ブラウザで開いても同様に動作します。
実行結果
プログラムを実行すると、まずテキストボックスに自動的にフォーカスが当たった状態で画面が表示されます。

その後、テキストボックス以外の場所をクリックしてフォーカスを外そうとすると、コンソールに以下のようなメッセージが表示され、すぐに入力フィールドへフォーカスが戻ります。

このように focus() と blur イベントを組み合わせることで、フォームの必須入力チェックや、ユーザーに入力を強制したい場面などで柔軟なフォーカス制御が可能になります。ただし、フォーカスを強制的に固定しすぎるとユーザー体験を損なう可能性があるため、実際のアプリケーションではバリデーションとの組み合わせなど、適切な設計を心がけましょう。
-
HTMLの週入力タイプ(type="week")の使い方をわかりやすく解説
HTMLでは、<input type=week> を使用することで、週入力タイプ(ウィーク入力フィールド)を実装できます。この入力タイプを使うと、ユーザーが「年」と「週」を選択できるようになります。 週入力フィールドにフォーカスして入力を行うと、日付選択用のポップアップ(ピッカー)が表示され、そこから週と年を簡単に選択できます。 ブラウザ対応状況に注意 注意: 週入力タイプ(type=week)は、Firefox や Internet Explorer ではサポートされていません。動作が確認されているのは Google Chrome などの一部のブラウザです。実装の際は、対象ブラウ
-
HTMLでURL入力タイプ(type="url")を使用する方法を解説
URL入力タイプとは?HTMLでURLを入力するフィールドを作成するには、<input type=url>を使用します。この入力タイプを指定することで、ユーザーはWebサイトのアドレスを簡単に入力できるようになります。特にスマートフォンやタブレットでは、URL入力に適したキーボード(「/」や「.com」などのキーを含む)が自動的に表示されるため、入力の手間を大幅に減らせます。ブラウザによる自動検証機能多くのモダンブラウザでは、URL入力タイプに入力された値が自動的に検証されます。例えば、URLの形式が不正な場合(「.com」などのドメイン部分が抜けている場合など)にフォームを送信し