## .submit( handler )Returns: jQuery

Description: Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.

- #### version added: 1.0.submit( handler )

  - handler
    Type: Function( Event eventObject )
    A function to execute each time the event is triggered.

- #### version added: 1.4.3.submit( [eventData ], handler )

  - eventData
    Type: Anything
    An object containing data that will be passed to the event handler.
  - handler
    Type: Function( Event eventObject )
    A function to execute each time the event is triggered.

- #### version added: 1.0.submit()

  - This signature does not accept any arguments.

This method is a shortcut for `.on( "submit", handler )` in the first variation, and `.trigger( "submit" )` in the third.

The `submit` event is sent to an element when the user is attempting to submit a form. It can only be attached to `<form>` elements. Forms can be submitted either by clicking an explicit `<input type="submit">`, `<input type="image">`, or `<button type="submit">`, or by pressing `Enter` when certain form elements have focus.

Depending on the browser, the Enter key may only cause a form submission if the form has exactly one text field, or only when there is a submit button present. The interface should not rely on a particular behavior for this key unless the issue is forced by observing the keypress event for presses of the Enter key.

For example, consider the HTML:

1 2 3 4 5 6 7 |
    <form id="target" action="destination.html">  <input type="text" value="Hello there">  <input type="submit" value="Go"></form><div id="other">  Trigger the handler</div>

The event handler can be bound to the form:

1 2 3 4 |
    $( "#target" ).submit(function( event ) {  alert( "Handler for .submit() called." );  event.preventDefault();});

Now when the form is submitted, the message is alerted. This happens prior to the actual submission, so we can cancel the submit action by calling `.preventDefault()` on the event object or by returning `false` from our handler. We can trigger the event manually when another element is clicked:

1 2 3 |
    $( "#other" ).click(function() {  $( "#target" ).submit();});

After this code executes, clicks on `Trigger the handler` will also display the message. In addition, the default `submit` action on the form will be fired, so the form will be submitted.

The JavaScript `submit` event does not bubble in Internet Explorer. However, scripts that rely on event delegation with the `submit` event will work consistently across browsers as of jQuery 1.4, which has normalized the event's behavior.

### Additional Notes:

- As the `.submit()` method is just a shorthand for `.on( "submit", handler )`, detaching is possible using `.off( "submit" )`.
- Forms and their child elements should not use input names or ids that conflict with properties of a form, such as `submit`, `length`, or `method`. Name conflicts can cause confusing failures. For a complete list of rules and to check your markup for these problems, see DOMLint.

## Examples:

If you'd like to prevent forms from being submitted unless a flag variable is set, try:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
    <!doctype html><html lang="en"><head>  <meta charset="utf-8">  <title>submit demo</title>  <style>  p {    margin: 0;    color: blue;  }  div,p {    margin-left: 10px;  }  span {    color: red;  }  </style>  <script src="https://code.jquery.com/jquery-1.10.2.js"></script></head><body> <p>Type 'correct' to validate.</p><form action="javascript:alert( 'success!' );">  <div>    <input type="text">    <input type="submit">  </div></form><span></span> <script>$( "form" ).submit(function( event ) {  if ( $( "input:first" ).val() === "correct" ) {    $( "span" ).text( "Validated..." ).show();    return;  }   $( "span" ).text( "Not valid!" ).show().fadeOut( 1000 );  event.preventDefault();});</script> </body></html>

#### Demo:

If you'd like to prevent forms from being submitted unless a flag variable is set, try:

1 2 3 |
    $( "form" ).submit(function() {  return this.some_flag_variable;});

To trigger the submit event on the first form on the page, try:

1 |
    $( "form:first" ).submit();