htmx 回應目標擴展

此擴展允許您指定當接收到不同的 HTTP 回應代碼時要交換的不同目標元素。

它使用 hx-target-[代碼] 形式的屬性名稱,其中 [代碼] 是一個數字 HTTP 回應代碼,結尾可選用萬用字元。您也可以使用 hx-target-error,它會處理 4xx 和 5xx 回應代碼。

每個屬性的值可以是

安裝

<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 的回應將取代 idany-errorsdiv 的內容。

萬用字元解析

當狀態回應代碼與現有的 hx-target-[代碼] 屬性名稱不匹配時,則將其表示為字串的數值部分進行修剪,並將最後一個字元替換為星號 (*)。此查詢過程會持續進行,直到找到屬性或沒有更多數字為止。

例如,如果瀏覽器收到 404 錯誤代碼,則會查詢以下屬性名稱 (按給定的順序)

如果您使用的工具不支援 HTML 屬性中的星號,則可以使用 x 字元,例如,hx-target-4xx

注意事項

另請參閱