mirror of
https://github.com/bigskysoftware/htmx.git
synced 2025-09-28 05:21:18 +00:00

* Mention all extended selector keywords in `hx-disabled-elt` docs * Expand possible values of the attribute similar to `hx-target`
2.3 KiB
2.3 KiB
+++ title = "hx-disabled-elt" +++
The hx-disabled-elt
attribute allows you to specify elements that will have the disabled
attribute
added to them for the duration of the request. The value of this attribute can be:
- A CSS query selector of the element to disable.
this
to disable the element itselfclosest <CSS selector>
which will find the closest ancestor element or itself, that matches the given CSS selector (e.g.closest fieldset
will disable the closest to the elementfieldset
).find <CSS selector>
which will find the first child descendant element that matches the given CSS selectornext
which resolves to element.nextElementSiblingnext <CSS selector>
which will scan the DOM forward for the first element that matches the given CSS selector (e.g.next button
will disable the closest following siblingbutton
element)previous
which resolves to element.previousElementSiblingprevious <CSS selector>
which will scan the DOM backwards for the first element that matches the given CSS selector. (e.gprevious input
will disable the closest previous siblinginput
element)
Here is an example with a button that will disable itself during a request:
<button hx-post="/example" hx-disabled-elt="this">
Post It!
</button>
When a request is in flight, this will cause the button to be marked with the disabled
attribute,
which will prevent further clicks from occurring.
The hx-disabled-elt
attribute also supports specifying multiple CSS selectors separated by commas to disable multiple elements during the request. Here is an example that disables buttons and text input fields of a particular form during the request:
<form hx-post="/example" hx-disabled-elt="find input[type='text'], find button">
<input type="text" placeholder="Type here...">
<button type="submit">Send</button>
</form>
Notes
hx-disabled-elt
is inherited and can be placed on a parent element