Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.

github/form-data-entries

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

FormData.entries ponyfill

This ponyfill implements the FormData serialization algorithm. It aims to be compatible with calling the native new FormData(form).entries(). jQuery's serializeArray is another implementation example.

Usage

import formDataEntries from 'form-data-entries'

for (const [name, value] of formDataEntries(myForm)) {
  console.log(`${name}=${value}`)
}

Why ponyfill?

This package implements FormData.entries as a module ponyfill rather than a polyfill. FormData.entries was a later addition to the FormData specification. Therefore browsers may support FormData but not the entries method. It would be dangerous to attempt to fill just this additional entries method in browsers that have partial support. This module only implements entries as a standalone function which will even work in browsers with no FormData support.

However, once FormData.entries is widely supported this package should be considered obsolete.

Undefined Behavior

This module makes a best effort to match the behavior of native FormData.entries. It should be possible in the future to replace calls to formDataEntries(form) with new FormData(form).entries(). However, there are some cases where this module can not fully match the native behavior.

  • If the form contains any <input type=file> elements, the behavior is considered undefined and should not be relied upon.
  • In Safari when FormData is constructed on the submit event, it will include the submitter value. This behavior does not exist in other browsers, and is not and can not be implemented in the ponyfill since the submitter element is not exposed.

Test Suite

About

FormData.entries ponyfill

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published