
form-fetch
AJAX fetch for HTML form submissions using form DOM data.
Install
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
formMethod()
Determines the effective method
for fetch() submit.
method = formMethod(form)
method = formMethod(form, init)
Parameters
- form:
A HTMLFormElement.
- init:
An optional RequestInit object.
If init.method is set, it is returned.
- returned method:
The return value is the calculated HTTP method, determined by the following priority of non-empty values: