The FormData() constructor creates a new FormData object.

Note: This feature is available in Web Workers.

Syntax

var formData = new FormData(form)

Parameters

form Optional
An HTML <form> element — when specified, the FormData object will be populated with the form's current keys/values using the name property of each element for the keys and their submitted value for the values. It will also encode file input content.

Example

The following line creates an empty FormData object:

var formData = new FormData(); // Currently empty

You could add a key/value pair to this using FormData.append:

formData.append('username', 'Chris');

Or you can specify the optional form argument when creating the FormData object, to prepopulate it with values from the specified form:

<form id="myForm" name="myForm">
  <div>
    <label for="username">Enter name:</label>
    <input type="text" id="username" name="username">
  </div>
  <div>
    <label for="useracc">Enter account number:</label>
    <input type="text" id="useracc" name="useracc">
  </div>
  <div>
    <label for="userfile">Upload file:</label>
    <input type="file" id="userfile" name="userfile">
  </div>
<input type="submit" value="Submit!">
</form>

Note: All input elements have a 'name' attribute. It is necessary to be able to access their values later.

var myForm = document.getElementById('myForm');
formData = new FormData(myForm);

Specifications

Specification Status Comment
XMLHttpRequest
The definition of 'FormData()' in that specification.
Living Standard Initial definition

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support7 Yes410125
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes Yes12 ? ?

See also

Document Tags and Contributors

Last updated by: connorshea,