Extract and set form values through the DOM—no frameworks required! https://github.com/TheoryOfNekomata/formxtra
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
TheoryOfNekomata bc9b96b597 Merge branch 'master' of code.modal.sh:TheoryOfNekomata/formxtr před 3 roky
cypress Restructure tests, add other scenarios před 3 roky
src Restructure tests, add other scenarios před 3 roky
test/utils Restructure tests, add other scenarios před 3 roky
.gitignore Update README před 3 roky
.npmignore Update README před 3 roky
LICENSE Initial commit před 3 roky
README.md Merge branch 'master' of code.modal.sh:TheoryOfNekomata/formxtr před 3 roky
cypress.json Restructure tests, add other scenarios před 3 roky
jest.config.js Unify tests před 3 roky
package.json Restructure tests, add other scenarios před 3 roky
publish.sh Update usage notes, prepare for publishing před 3 roky
tsconfig.json Implement tests před 3 roky
yarn.lock Restructure tests, add other scenarios před 3 roky

README.md

formxtr

Extract form values through the DOM.

Motivation

There are many ways to lay out forms.

Installation

The package can be found on:

Usage

For an example form:

<!-- ...  -->

<form id="form">
	<input type="text" name="username" />
	<input type="password" name="password" />
	<button type="submit" name="type" value="client">Log In As Client</button>
	<button type="submit" name="type" value="admin">Log In As Admin</button>
</form>

<!-- ... --->

Use the library as follows (code is in TypeScript, but can work with JavaScript as well):

import getFormValues from '@theoryofnekomata/formxtr';

const form: HTMLFormElement = document.getElementById('form');

// optional, but just in case there are multiple submit buttons in the form,
// individual submitters can be considered
const submitter = form.querySelector('[type="submit"][name="type"][value="client"]');

const values = getFormValues(form, submitter);

const processResult = (result: Record<string, unknown>) => {
  throw new Error('Not yet implemented.');
};

// Best use case is with event handlers
form.addEventListener('submit', async e => {
	const { target: form, submitter } = e;
	e.preventDefault();

	const values = getFormValues(form, submitter);

	// Get the form values and send as request to some API
	const response = await fetch(
		'https://example.com/api/log-in',
		{
			method: 'POST',
			body: JSON.stringify(values),
			headers: {
				'Content-Type': 'application/json',
			},
		},
	);

	if (response.ok) {
		const result = await response.json();

		processResult(result);
	}
})

Tests

The library has been tested on JSDOM through Jest, and the real DOM using Cypress.