<input>
elements of type "submit"
are rendered as buttons. When the click
event occurs (typically because the user clicked the button), the user agent attempts to submit the form to the server.
<input type="submit" value="Send Request">
Value | A DOMString used as the button's label |
Events | click |
Supported common attributes |
type and value
|
IDL attributes | value |
Methods | None |
An <input type="submit">
element's value
attribute contains a DOMString
which is displayed as the button's label. Buttons do not have a true value otherwise.
<input type="submit" value="Send Request">
If you don't specify a value
, the button will have a default label, chosen by the user agent. This label is likely to be something along the lines of "Submit" or "Submit Query." Here's an example of a submit button with a default label in your browser:
<input type="submit">
<input type="submit">
buttons are used to submit forms. If you want to create a custom button and then customize the behavior using JavaScript, you need to use <input type="button">
, or better still, a <button>
element.
If you choose to use <button>
elements to create the buttons in your form, keep this in mind: if there's only one <button>
inside the <form>
, that button will be treated as the "submit" button. So you should be in the habit of expressly specifying which button is the submit button.
We'll begin by creating a form with a simple submit button:
<form> <div> <label for="example">Let's submit some text</label> <input id="example" type="text" name="text"> </div> <div> <input type="submit" value="Send"> </div> </form>
This renders like so:
Try entering some text into the text field, and then submitting the form.
Upon submitting, the data name/value pair gets sent to the server. In this instance, the string will be "text=usertext"
, where "usertext" is the text entered by the user, encoded to preserve special characters. Where and how the data is submitted depends on the configuration of the <form>
; see Sending form data for more details.
Keyboard shortcuts, also known as access keys and keyboard equivalents, let the user trigger a button using a key or combination of keys on the keyboard. To add a keyboard shortcut to a submit button — just as you would with any <input>
for which it makes sense — you use the accesskey
global attribute.
In this example, s is specified as the access key (you'll need to press s plus the particular modifier keys for your browser/OS combination. In order to avoid conflicts with the user agent's own keyboard shortcuts, different modifier keys are used for access keys than for other shortcuts on the host computer. See accesskey
for further details.
Here's the previous example with the s access key added:
<form> <div> <label for="example">Let's submit some text</label> <input id="example" type="text" name="text"> </div> <div> <input type="submit" value="Send" accesskey="s"> </div> </form>
For example, in Firefox for Mac, pressing Control-Option-S triggers the Send button, while Chrome on Windows uses Alt+S.
The problem with the above example is that the user will not know what the access key is! This is especially true since the modifiers are typically non-standard to avoid conflicts. When building a site, be sure to provide this information in a way that doesn't interfere with the site design (for example by providing an easily accessible link that points to information on what the site access keys are). Adding a tooltip to the button (using the title
attribute) can also help, although it's not a complete solution for accessibility purposes.
To disable a submit button, simply specify the disabled
global attribute on it, like so:
<input type="submit" value="Disabled" disabled>
You can enable and disable buttons at run time by simply setting disabled
to true
or false
; in JavaScript this looks like btn.disabled = true
or btn.disabled = false
.
See the <input type="button">
page for more ideas about enabling and disabling buttons.
Submit buttons don't participate in constraint validation; they have no real value to be constrained.
We've included simple examples above. There isn't really anything more to say about submit buttons. There's a reason this kind of control is sometimes called a "simple button."
Specification | Status |
HTML Living Standard The definition of '<input type="submit">' in that specification. | Living Standard |
HTML5 The definition of '<input type="submit">' in that specification. | Recommendation |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 1.0 | 1.0 (1.7 or earlier)[1] | (Yes) | (Yes) | 1.0 |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | (Yes) | 4.0 (4.0)[1] | (Yes) | (Yes) | (Yes) |
[1] Unlike other browsers, Firefox by default persists the dynamic disabled state of a <button>
across page loads. Use the autocomplete
attribute to control this feature.
<input>
and the HTMLInputElement
interface which implements it.<button>
element
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/submit