Issue
When I use the new details tag in combination with a summary I would then like to disable the generated input. I thought that
<details open disabled>
could do the trick, but sadly it doesn't work.
How can one disable the details element?
Solution
Instead of using the non-existent disabled attribute, you can set a click handler on the <details> element, and prevent the default event behavior from there. Quick and dirty way is:
<details open onclick="return false">
<summary>Click here</summary>
<p>content</p>
</details>
The proper way to do it would be using addEventListener:
<details id="mydetails" open>
<summary>Click here</summary>
<p>content</p>
</details>
<script>
document.getElementById('mydetails').addEventListener('click', function(e) {
e.preventDefault();
});
</script>
To solve the focus problem you mentioned in the comments, add tabindex="-1" as an attribute of <summary> to prevent it from getting keyboard focus. Please note that I'm not sure if that will work on every browser, and that a focus event will still be triggered on click even with the attribute.
Answered By - bfavaretto
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.