Comparison
What is the difference between input type=submit and button type=submit?
Both submit a form and support the same form* override attributes. The main trade-off is content: an <input type="submit"> is a void element with a plain-text value label, while a <button type="submit"> can wrap HTML and icons. See the full HTML button reference for reset and type="button" behaviour.
| Topic | <input type="submit"> | <button type="submit"> |
|---|---|---|
| Content allowed | Plain text only, from the value attribute | HTML, text and icons between the opening and closing tags |
| Default type | Always submit (there is no other type on <input>) | Submit inside a <form> if type is omitted; must set type="submit" explicitly outside a form context when needed |
| Styling | Native button appearance; reset with appearance: none and style like a custom button | Same baseline, but inner markup can be styled separately |
| Icons | Not inside the element; use CSS background or pick <button> instead | Put <svg> or <img> inside the tags |
Sources: WHATWG HTML Standard: Submit Button state · MDN: <input type="submit"> · MDN: <button>




