Como
form.submit(), mas com ajax. Leve, moderno, prometido, usafetch
Em vez de causar um carregamento de página como form.submit() faz, você pode usar pushForm(form) para enviar um formulário via fetch . Ele lê automaticamente todos os campos usando APIs modernas e executa a solicitação exatamente conforme descrito pelos atributos form .
npm install push-form
// This module is only offered as a ES Module
import pushForm from 'push-form' ; Dado um elemento de formulário regular:
< 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 > Você pode publicá-lo via fetch com:
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 use ajaxifyForm para que ele lide com o envio do usuário automaticamente:
import { ajaxifyForm } from 'push-form' ;
const form = document . querySelector ( 'form' ) ;
ajaxifyForm ( form , {
onSuccess : ( ) => { /* ✅ */ } ,
onError : ( ) => { /* */ } ,
} ) ; Retorna uma Promise que resolve com uma Response exatamente como fetch .
Tipo: HTMLFormElement
O formulário a ser enviado. Seus atributos action e method serão usados para criar a solicitação HTTP.
Tipo: object
Exemplo: {headers: {Accept: 'application/json'}}
Isso corresponde ao segundo parâmetro de fetch , porém o body e method serão substituídos pelo que o elemento form especifica em seus atributos.
Interrompe o evento submit de um formulário e usa pushForm . Isso retorna uma function que você pode chamar para remover o manipulador submit .
Igual ao do pushForm
Tipo: object
Manipuladores opcionais de envio/erro e configuração para fetch .
Tipo: function
Exemplo: (fetchResponse) => {alert('The form was submitted!')}
Será chamado quando fetch fizer a solicitação e o servidor retornar uma resposta bem-sucedida ( response.ok )
Tipo: function
Exemplo: (error) => {alert('Something happened:' + error.message)}
Ele será chamado quando fetch falhar na solicitação ou se o servidor retornar uma resposta de erro ( response.ok === false )
O mesmo que em pushForm .
querySelector / All wrapper leve que gera um Array.DocumentFragment ou um Element , em alguns bytes.