Extract and set form values through the DOM—no frameworks required! https://github.com/TheoryOfNekomata/formxtra
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
TheoryOfNekomata bc9b96b597 Merge branch 'master' of code.modal.sh:TheoryOfNekomata/formxtr há 3 anos
cypress Restructure tests, add other scenarios há 3 anos
src Restructure tests, add other scenarios há 3 anos
test/utils Restructure tests, add other scenarios há 3 anos
.gitignore Update README há 3 anos
.npmignore Update README há 3 anos
LICENSE Initial commit há 3 anos
README.md Merge branch 'master' of code.modal.sh:TheoryOfNekomata/formxtr há 3 anos
cypress.json Restructure tests, add other scenarios há 3 anos
jest.config.js Unify tests há 3 anos
package.json Restructure tests, add other scenarios há 3 anos
publish.sh Update usage notes, prepare for publishing há 3 anos
tsconfig.json Implement tests há 3 anos
yarn.lock Restructure tests, add other scenarios há 3 anos

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.