この例では、ユーザーがテキストを入力すると、連絡先データベースがアクティブに検索されます。
検索入力と空のテーブルから始めます。
<h3>
Search Contacts
<span class="htmx-indicator">
<img src="/img/bars.svg"/> Searching...
</span>
</h3>
<input class="form-control" type="search"
name="search" placeholder="Begin Typing To Search Users..."
hx-post="/search"
hx-trigger="input changed delay:500ms, search"
hx-target="#search-results"
hx-indicator=".htmx-indicator">
<table class="table">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody id="search-results">
</tbody>
</table>
入力を発行すると、input イベントで POST が /search に送信され、テーブルのボディが結果のコンテンツに設定されます。keyup イベントも使用できますが、ユーザーがマウス(またはキーボード以外の方法)でテキストを貼り付けた場合はトリガされません。
ユーザーが入力を停止するまでクエリを送信を遅延させるために、 delay:500ms 修飾子をトリガに追加します。さらに、ユーザーが入力値を変更しない場合(例:矢印キーを押す、または同じ値を貼り付ける)に新しいクエリを送信しないように、 changed 修飾子をトリガに追加します。
search タイプの入力をを使用するため、入力フィールドに x が表示され、入力がクリアされます。このトリガーを新しい POST にするには、別のトリガーを指定する必要があります。コンマを使用して別のトリガーを指定します。フィールドがクリアされると search トリガーが実行されますが、そのまま enter キーを押すと 500 ミリ秒の input イベントの遅延をオーバーライドできます。
最後に、hx-indicator 属性を使用して検索が実行中の場合にインジケーターを表示します。