←back to thread

Just use a button

(gomakethings.com)
285 points moebrowne | 5 comments | | HN request time: 0.702s | source
Show context
giancarlostoro ◴[] No.45774524[source]
Weird, I always use buttons when I can, unless what I need is not actually a button, but something that performs and on-click sort of like a button, like a hyperlink that navigates you through the web app.
replies(2): >>45774943 #>>45775773 #
1. ervine ◴[] No.45774943[source]
I guess if it doesn't update the url, it's a button.

If it changes the url, it should be a link. At least that's how I've always done it.

replies(1): >>45775119 #
2. cassepipe ◴[] No.45775119[source]
Is is not okay to wrap a link inside a button ? I guess not

Which elements are allowed to wrap which is unclear to me

replies(3): >>45775243 #>>45775937 #>>45776709 #
3. stevula ◴[] No.45775243[source]
What is the use case? It’s hard for me to think of a reason you’d want to wrap a link in a button. If you want to navigate, use an anchor. If you want to trigger JS logic, use a button with onclick handler. If you want to navigate while doing some side effect like an API call, use an anchor with onclick handler (and don’t prevent default).
4. cferdinandi ◴[] No.45775937[source]
Literally absolutely never ever do this.
5. Shog9 ◴[] No.45776709[source]
FWIW, you can generally figure out what's allowed fairly quickly by checking the content model for a given element[1]. Some browsers might be more or less restrictive, but for normal usage this'll be more than enough to avoid unexpected behavior.

[1]: https://html.spec.whatwg.org/#the-button-element:concept-ele...