Suka
form.submit()
, tetapi ajax. Ringan, modern, dijanjikan, menggunakanfetch
Daripada menyebabkan pemuatan halaman seperti yang dilakukan form.submit()
, Anda dapat menggunakan pushForm(form)
untuk mengirim formulir melalui fetch
. Secara otomatis membaca semua bidang menggunakan API modern dan melakukan permintaan persis seperti yang dijelaskan oleh atribut form
.
npm install push-form
// This module is only offered as a ES Module
import pushForm from 'push-form' ;
Diberikan elemen bentuk biasa:
< 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 >
Anda dapat mempostingnya melalui fetch
dengan:
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!' ) ;
}
} ) ;
Atau gunakan ajaxifyForm
untuk menangani pengiriman pengguna secara otomatis:
import { ajaxifyForm } from 'push-form' ;
const form = document . querySelector ( 'form' ) ;
ajaxifyForm ( form , {
onSuccess : ( ) => { /* ✅ */ } ,
onError : ( ) => { /* */ } ,
} ) ;
Mengembalikan Promise
yang diselesaikan dengan Response
persis seperti yang dilakukan fetch
.
Ketik: HTMLFormElement
Formulir untuk diserahkan. Atribut action
dan method
akan digunakan untuk membuat permintaan HTTP.
Jenis: object
Contoh: {headers: {Accept: 'application/json'}}
Ini cocok dengan parameter kedua dari fetch
, namun body
dan method
akan diganti dengan apa yang ditentukan elemen form
dalam atributnya.
Menghentikan acara submit
formulir dan menggunakan pushForm
sebagai gantinya. Ini mengembalikan function
yang dapat Anda panggil untuk menghapus pengendali submit
.
Sama seperti yang ada di pushForm
Jenis: object
Penanganan dan konfigurasi pengiriman/kesalahan opsional untuk fetch
.
Jenis: function
Contoh: (fetchResponse) => {alert('The form was submitted!')}
Ini akan dipanggil ketika fetch
membuat permintaan dan server mengembalikan respons yang berhasil ( response.ok
)
Jenis: function
Contoh: (error) => {alert('Something happened:' + error.message)}
Ini akan dipanggil ketika fetch
gagal dalam permintaan atau jika server mengembalikan respons kesalahan ( response.ok === false
)
Sama seperti yang ada di pushForm
.
querySelector
ringan / All
pembungkus yang menghasilkan Array.DocumentFragment
atau satu Element
, dalam beberapa byte.