A utility to take in an element or array of elements and return an object consisting of their values
formMapper is an ES6 module. Consequently, you'll nee an ES6 transpiler (Babel is an option) as part of your Javascript workflow.
If you are already using NPM for your project, you can install formMapper with the following command:
$ npm install @degjs/form-mapper
import { getValues } from "@degjs/form-mapper";
.
.
.
const formData = getValues(formEl);
import formMapper from "@degjs/form-mapper";
.
.
.
const formData = formMapper.getValues(formEl);
The options represent the default selector names for various input elements. Can be replaced with a string of any selectors that querySelectAll and matches supports.
Default: input, select, textarea
Example override: .js-input, .js-checkbox-input, select[multiple], textarea
The getValues method returns an object with key value pairs being { inputName: inputValue }
Type: Element | Element[]
The container element, input element or array of elements to get values from.
Type: Object
Default: {elementSelectors: defaultElementSelectors, shouldStringify: false, shouldReturnAllCheckboxVals: false}
An object to override the default settings.
shouldStringify declares if the returned value should be a string representation of an object or just the object.
shouldReturnAllCheckboxVals declares if checkbox groups (i.e., multiple inputs with the same name) should return an array of only "checked" values, or an object of all inputs with a boolean value.
The getInputElements method returns an array of input elements as found by the default selectors.
Type: Element
The form element to extract inputs from.
Type: String
Default: defaultElementSelectors
And string representing a comma-separated list of selectors to override any default element selectors.
formMapper depends on the following browser APIs:
- matches: Documentation | Polyfill
As of Febrary 2018, matches is supported in IE9 and up.
To support legacy browsers, you'll need to include polyfills for the above APIs.