HTMLFormElement: formdata event
The formdata
event fires 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.
General info
Bubbles | No |
---|---|
Cancelable | No |
Interface | FormDataEvent |
Event handler property | GlobalEventHandlers.onformdata |
Examples
// grab reference to form
const formElem = document.querySelector('form');
// submit handler
formElem.addEventListener('submit', (e) => {
// on form submission, prevent default
e.preventDefault();
console.log(form.querySelector('input[name="field1"]')); // FOO
console.log(form.querySelector('input[name="field2"]')); // BAR
// construct a FormData object, which fires the formdata event
const formData = new FormData(formElem);
// formdata gets modified by the formdata event
console.log(formData.get('field1')); // foo
console.log(formData.get('field2')); // bar
});
// formdata handler to retrieve data
formElem.addEventListener('formdata', (e) => {
console.log('formdata fired');
// modifies the form data
const formData = e.formData;
// formdata gets modified by the formdata event
formData.set('field1', formData.get('field1').toLowerCase());
formData.set('field2', formData.get('field2').toLowerCase());
});
The onformdata
version would look like this:
formElem.onformdata = (e) => {
console.log('formdata fired');
// modifies the form data
const formData = e.formData;
formData.set('field1', formData.get('field1').toLowerCase());
formData.set('field2', formData.get('field2').toLowerCase());
};
Specifications
Specification |
---|
HTML Standard # event-formdata |
Browser compatibility
BCD tables only load in the browser
See also
- HTML
<form>
element FormDataEvent