The FormDataEvent interface represents a formdata event — such an event is fired on an HTMLFormElement object after the entry list representing the form's data is constructed. This happens when the form is submitted, but can also be triggered by the invocation of a FormData() constructor.

This allows a FormData object to be quickly obtained in response to a formdata event firing, rather than needing to put it together yourself when you wish to submit form data via a method like XMLHttpRequest (see Using FormData objects).

Note: This feature is available in Web Workers.


Creates a new FormDataEvent object instance.


Inherits properties from its parent interface, Event.

Contains the FormData object representing the data contained in the form when the event was fired.


Inherits methods from its parent interface, Event.


// grab reference to form

const formElem = document.querySelector('form');

// submit handler

formElem.addEventListener('submit', (e) => {
  // on form submission, prevent default
  // construct a FormData object, which fires the formdata event
  new FormData(formElem);

// formdata handler to retrieve data

formElem.addEventListener('formdata', (e) => {
  console.log('formdata fired');
  // Get the form data from the event object
  let data = e.formData;
  for (var value of data.values()) {
  // submit the data via XHR
  var request = new XMLHttpRequest();"POST", "/formHandler");


Specification Status Comment
HTML Living Standard
The definition of 'FormDataEvent' in that specification.
Living Standard

Browser compatibility

No compatibility data found. Please contribute data for "api.FormDataEvent" (depth: 1) to the MDN compatibility data repository.

See also