JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

バニラJavaScriptでページ読み込み時に最初のフォーム入力フィールドへ自動フォーカスする方法

HTMLフォームのページ読み込み時に、最初の入力フィールドへ自動的にフォーカスを当てる方法を解説します。

優れたUXデザインの基本原則のひとつは、ユーザーが目的のものに素早くたどり着けるよう、AからBまでの手順をできる限り減らすことです。

フォーム入力が好きな人はいません。特に長いフォームは敬遠されがちです。そこで、ページ読み込み時にフォームの最初の入力フィールドへ自動フォーカスを設定し、ユーザーの貴重な時間を少しでも節約しましょう。

HTMLフォーム

以下のフォームコードをHTMLドキュメントに追加してください。

<form>
	First name:<br>
	<input type="text" name="firstname" id="firstField"><br>Last name:<br>
	<input type="text" name="lastname"><br>Country:<br>
	<input type="text" name="lastname">
</form>

JavaScript

次のJavaScriptのonload関数を.jsファイルに追加してください。

window.onload = function() {
  document.getElementById("firstField").focus();
};

ページ読み込み時の自動フォーカスデモ

以下のデモで実際の動作を確認できます。

https://codepen.io/StrengthandFreedom/pen/yLypogQ

コードの仕組み

まずHTMLフォームを見てみましょう。最初の入力フィールドにはfirstFieldというIDが付与されており、これがJavaScriptで操作対象となる要素です。

JavaScript側では、window.onloadというonloadイベントを設定しています。このイベントは、新しいページへ移動したときやブラウザを更新したときに即座に実行されます。

onloadイベントによって実行される関数は、document.getElementByIdを使ってfirstFieldというIDを持つ入力フィールドを検索し、続いてJavaScriptのfocus()メソッドを呼び出すことで、その入力フィールドの状態を「フォーカス済み」に設定します。

トラブルシューティング

入力フィールドからフォーカスのアウトラインが突然消えてしまうことはありませんか?これは、今回のコードが各ページ読み込み時に一度だけ最初の入力フィールドへ自動フォーカスする仕組みになっているためです。自動フォーカスされた入力フィールドにすぐに入力せず、他の操作を行うと、再度ページを更新するまで自動フォーカスは再適用されません。

  1. JavaScriptでテキスト入力フィールドのEnterキー押下を検出する方法

    Enterキーの検出にはkeyCode 13を使用するJavaScriptでEnterキーを検出するには、keyCode 13を使用します。まず、テキスト入力フィールドを作成しましょう。<input type="text" id="txtInput">次に、jQueryのon()メソッドとkeyCodeを組み合わせて、Enterキーの押下を検出します。以下が完全なコード例です。コード例<!DOCTYPE html><html lang="en"><head><meta charse

  2. 【JavaScript】入力フィールドに文字が入力されたらボタンの色を変更する方法

    Webフォームを作成していると、「テキスト入力欄に何かが入力されたら、ボタンの色を変えてユーザーに視覚的なフィードバックを与えたい」というケースはよくあります。本記事では、JavaScriptのonkeyupイベントとgetElementByIdを使って、この動作をシンプルに実装する方法を解説します。 実装のポイント 今回の仕組みは非常にシンプルです。入力フィールドにonkeyupイベントを設定し、キーが押されるたびに入力値をチェックします。値が空でなければボタンの背景色を緑に、空なら元の水色に戻すという処理を行います。 1. ボタンの準備 まず、色を変更対象となるボタンを用意します。初期状態