@basket/serialize-form

1.0.1 • Public • Published

serialize-form

Simple function to serialize html form to plain JS object. Supports nested properties and arrays. Each input with name attribute will be added to serialized object. If value of this input passed isFinite function check it serializes as number. If checkbox or radio button is not checked its value will be false.

Install

npm install @basket/serialize-form --save

Usage

const serializeForm = require('../index');

const form = `<form id="form">
    <input type="text" name="number" value="1.1" />
    <input type="text" name="text.string" value="text" />
    <input type="text" name="text.number" value="1.2" />
    <textarea name="textarea.string">test</textarea>
    <textarea name="textarea.number">1.3</textarea>
    <input type="checkbox" name="checkboxOn" checked />
    <input type="checkbox" name="checkboxOff" />
    <input type="radio" name="radio[0]" value="1" />
    <input type="radio" name="radio[0]" value="2" checked />
    <input type="radio" name="radio[1]" value="3" />
    <input type="radio" name="radio[1]" value="4" />
</form>`;

document.body.innerHTML = form;

const formData = serializeForm(document.getElementById('form'));

The result of form data will be:

{
    "number": 1.1,
    "text": {"string": "text", "number": 1.2},
    "textarea": {"string": "test", "number": 1.3},
    "checkboxOn": true,
    "checkboxOff": false,
    "radio": [2, false]
}

Readme

Keywords

none

Package Sidebar

Install

npm i @basket/serialize-form

Weekly Downloads

2

Version

1.0.1

License

MIT

Last publish

Collaborators

  • borovin