Comme
form.submit(), mais en ajax. Léger, moderne, promis, utilisefetch
Au lieu de provoquer un chargement de page comme le fait form.submit() , vous pouvez utiliser pushForm(form) pour envoyer un formulaire via fetch . Il lit automatiquement tous les champs à l'aide d'API modernes et exécute la requête exactement comme décrit par les attributs form .
npm install push-form
// This module is only offered as a ES Module
import pushForm from 'push-form' ; Étant donné un élément de formulaire régulier :
< form action =" submissions.php " type =" post " >
First name < input name =" firstname " required /> < br />
Last name < input name =" lastname " required /> < br />
Passport < input name =" passport " type =" file " required />
< button > Submit </ button >
</ form > Vous pouvez le publier via fetch avec :
import pushForm from 'push-form' ;
const form = document . querySelector ( 'form' ) ;
form . addEventListener ( 'submit' , async event => {
event . preventDefault ( ) ;
const response = await pushForm ( ) ;
if ( response . ok ) {
alert ( 'Thanks for your submission!' ) ;
}
} ) ; Ou utilisez ajaxifyForm pour qu'il gère automatiquement la soumission de l'utilisateur :
import { ajaxifyForm } from 'push-form' ;
const form = document . querySelector ( 'form' ) ;
ajaxifyForm ( form , {
onSuccess : ( ) => { /* ✅ */ } ,
onError : ( ) => { /* */ } ,
} ) ; Renvoie une Promise qui se résout avec une Response exactement comme le fait fetch .
Type : HTMLFormElement
Le formulaire à soumettre. Ses attributs action et method seront utilisés pour créer la requête HTTP.
Type : object
Exemple : {headers: {Accept: 'application/json'}}
Cela correspond au deuxième paramètre de fetch , mais le body et method seront remplacés par ce que l'élément form spécifie dans ses attributs.
Arrête l'événement submit d'un formulaire et utilise pushForm à la place. Cela renvoie une function que vous pouvez appeler pour supprimer le gestionnaire submit .
Identique à celui de pushForm
Type : object
Gestionnaires de soumission/erreur facultatifs et configuration pour le fetch .
Type : function
Exemple : (fetchResponse) => {alert('The form was submitted!')}
Il sera appelé lorsque fetch fera la demande et que le serveur renverra une réponse réussie ( response.ok )
Type : function
Exemple : (error) => {alert('Something happened:' + error.message)}
Il sera appelé lorsque fetch échoue à la requête ou si le serveur renvoie une réponse d'erreur ( response.ok === false )
Identique à celui de pushForm .
querySelector / All wrapper léger qui génère un tableau.DocumentFragment ou un Element , en quelques octets.