検索 + サジェスト ドロップダウン

UI コンポーネント Medium #js #search #autocomplete

入力するたびに候補が絞り込まれる、サジェスト付きの検索ボックスです。JavaScriptで入力イベント( oninput )を監視し、候補配列を filter で前方一致ではなく部分一致で絞り込み、結果を一覧として表示します。

▶ プレビュー

解説

入力するたびに候補が絞り込まれる、サジェスト付きの検索ボックスです。JavaScriptで入力イベント(oninput)を監視し、候補配列をfilterで前方一致ではなく部分一致で絞り込み、結果を一覧として表示します。さらに一致した文字を<b>で囲んで強調するので、どこがヒットしたかが一目で分かります。

向いている場面

SaaSのヘッダー検索、タグやカテゴリの選択補助、フォームの入力支援など、選択肢が多い入力に向きます。候補リストはmax-heightのアニメーションでなめらかに開閉します。

  • 候補はitems配列を差し替えるだけで自由に設定できる
  • 絞り込みは大文字小文字を区別しない実装になっている
  • 一致が0件のときはリストを閉じる処理が入っている

実務で使う際は、キーボード操作(上下キーやEnterでの確定)やスクリーンリーダー対応を足すとアクセシビリティが高まります。候補が多い場合は件数を絞ると見やすくなります。

よくある質問

候補のデータはどこで設定しますか
JavaScript内の items 配列に候補の文字列を並べるだけです。サーバーから取得した一覧を差し込めば動的なデータにも対応できます。絞り込みは大文字小文字を区別せず、部分一致で動きます。
キーボードだけで候補を選べますか
このサンプルはクリックでの選択を基本としています。上下キーでの移動やEnterでの確定を加えるとキーボード操作に対応でき、スクリーンリーダー利用者にも使いやすくなります。
inspired by common pattern / 追加日:2026-05-12
← すべてのスニペットへ戻る