- HTMLフォームの作成: まず、適切なHTMLフォームを作成します。これには、テキスト入力フィールドと候補リストを表示するための要素が含まれます。例えば、以下のような形式になります。
<input type="text" id="searchInput" autocomplete="off">
<ul id="suggestions"></ul>
-
JavaScriptの追加: 次に、JavaScriptを使用してオートコンプリートの機能を実装します。以下の手順に従って進めます。
a. テキスト入力イベントの監視: テキスト入力フィールドに入力があった場合にイベントを監視します。これにより、ユーザーがテキストを入力するたびに、Ajaxリクエストが送信され、候補リストが更新されます。
const searchInput = document.getElementById('searchInput'); searchInput.addEventListener('input', handleInput);
b. 入力の処理とAjaxリクエストの送信: テキスト入力が変更された場合に、入力の値を取得し、サーバーに対してAjaxリクエストを送信します。これにより、サーバーは入力値に基づいて適切な候補リストを生成します。
function handleInput() { const inputValue = searchInput.value; // Ajaxリクエストを送信し、候補リストを取得する // ここでは、jQueryを使用した例を示しますが、他のライブラリや純粋なJavaScriptでも同様のことができます $.ajax({ url: '/autocomplete', method: 'GET', data: { query: inputValue }, success: handleResponse }); }
c. レスポンスの処理と候補リストの表示: サーバーからのレスポンスを受け取った後、候補リストを表示します。例えば、以下のような方法で候補リストを更新することができます。
const suggestionsElement = document.getElementById('suggestions'); function handleResponse(response) { // レスポンスから候補リストを抽出する const suggestions = response.suggestions; // 候補リストを一旦クリアする suggestionsElement.innerHTML = ''; // 候補リストを表示する suggestions.forEach((suggestion) => { const listItem = document.createElement('li'); listItem.textContent = suggestion; suggestionsElement.appendChild(listItem); }); }
以上の手順に従って実装することで、Ajaxオートコンプリート機能を実現することができます。必要に応じて、CSSスタイルやサーバーサイドの処理についても追加でカスタマイズすることができます。