MDN has some spec links near the bottom of its article which confirm that what it says is correct: the default type
of a button
element is submit
.
type
=submit|button|reset
[CI]
This attribute declares the type of the button. Possible values:
submit:
Creates a submit button. This is the default value.reset:
Creates a reset button.button:
Creates a push button.
The
type
attribute controls the behavior of the button when it is activated. It is an enumerated attribute. The following table lists the keywords and states for the attribute — the keywords in the left column map to the states in the cell in the second column on the same row as the keyword.Keyword | State | Brief description --------+---------------+------------------ submit | Submit Button | Submits the form. reset | Reset Button | Resets the form. button | Button | Does nothing.
The missing value default is the Submit Button state.
What W3Schools is saying is that you should always specify the attribute to ensure as consistent behavior across browsers as possible. That doesn't imply that the attribute cannot legally be omitted.