0.0.18 • Published 1 year ago

@itrocks/form-fetch v0.0.18

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

npm version npm downloads GitHub issues discord

form-fetch

AJAX fetch for HTML form submissions using form DOM data.

Installation

npm install form-fetch

Usage

With an HTML page containing a button, a form, and a div with id result, you can fetch your form when clicking the button:

import { formFetch } from './node_modules/@itrocks/form-fetch/form-fetch.js'

document.querySelector('button').addEventListener('click', async () => 
{
	const htmlResponse = await formFetch(document.querySelector('form')).text()
	document.getElementById('#result').innerHTML = htmlResponse
})

Alternatively, add a submit event listener to the form to trigger a fetch instead of a standard submission:

import { formFetchOnSubmit } from './node_modules/@itrocks/form-fetch/form-fetch.js'

document.addEventListener('load', () => {
	formFetchOnSubmit(document.querySelector('form'), response => {
		document.getElementById('#result').innerHTML = htmlResponse
  })
})

For a streamlined approach, use xtarget and build to automate form-fetch:

import { buildXTarget } from './node_modules/@itrocks/xtarget/xtarget.js'
buildXTarget()

Features

form attributes automatically set fetch() options:

You can override these options with custom values for action and RequestInit.

API

FormElement

A type alias for form submitter elements:

type FormElement = HTMLButtonElement | HTMLFormElement | HTMLInputElement

formFetch()

Submits a form using fetch(), based on form DOM data.

response = formFetch(form)
response = formFetch(form, action)
response = formFetch(form, action, init)

Parameters

Example

document.querySelectorAll('form').forEach(form => {
	formFetch(form)
		.then(response => response.text())
		.then(html => document.getElementById('#result').append(html))
})

formFetchOnSubmit()

Attaches a submit event listener to fetch instead of submit.

formFetchSubmit(element, setResponse)
formFetchSubmit(element, setResponse, init)

Parameters

  • element: A FormElement (form, button, or input).
  • setResponse: A callback handling the Response:
    setResponse(response, targetSelector, form)
    • response: The retrieved Response.
    • targetSelector: The selector for the target where the form response should be displayed, determined by the formtarget of the submitter or the target of the form.
    • form: The submitted HTMLFormElement.
  • init: A callback that returns a RequestInit object containing any custom settings to apply to the request.

formMethod()

Determines the effective method for fetch() submit.

method = formMethod(form)
method = formMethod(form, init)

Parameters

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago