htmxレスポンスターゲット拡張機能

この拡張機能を使用すると、異なるHTTP応答コードを受信したときに交換されるターゲット要素を指定できます。

これは、`hx-target-[CODE]`形式の属性名を使用します。ここで`[CODE]`は数値のHTTP応答コードであり、オプションでワイルドカード文字を末尾に付けることができます。また、4xxと5xxの両方の応答コードを処理する`hx-target-error`も使用できます。

各属性の値は次のいずれかになります。

インストール

<script src="https://unpkg.com/htmx-ext-response-targets@2.0.0/response-targets.js"></script>

設定(オプション)

使用方法

これは、通常の(200)応答には`div`をターゲットにし、404(見つかりません)応答には別の`div`をターゲットにし、すべての5xx応答コードにはさらに別の`div`をターゲットにする例です。

<div hx-ext="response-targets">
<div id="response-div"></div>
<button hx-post="/register"
hx-target="#response-div"
hx-target-5*="#serious-errors"
hx-target-404="#not-found">
Register!
</button>
<div id="serious-errors"></div>
<div id="not-found"></div>
</div>

場合によっては、5xxと4xxのエラーを個別に処理したくない場合があります。その場合は、`hx-target-error`を使用できます。

<div hx-ext="response-targets">
<div id="response-div"></div>
<button hx-post="/register"
hx-target="#response-div"
hx-target-error="#any-errors">
Register!
</button>
<div id="any-errors"></div>
</div>

2xxコードは前の例のように処理されます。ただし、応答コードが5xxまたは4xxの場合、`/register`からの応答は、`id`が`any-errors`の`div`の内容を置き換えます。

ワイルドカード解決

ステータス応答コードが既存の`hx-target-[CODE]`属性名と一致しない場合、文字列として表現された数値部分は、最後の文字がアスタリスク(`*`)に置き換えられるようにトリミングされます。このルックアッププロセスは、属性が見つかるか、数字がなくなるまで続きます。

たとえば、ブラウザが404エラーコードを受信した場合、次の属性名が(指定された順序で)ルックアップされます。

HTML属性でアスタリスクをサポートしていないツールを使用している場合は、代わりに`x`文字を使用できます(例:`hx-target-4xx`)。

注意事項

関連項目