form.submit()
と似ていますが、ajax 化されています。軽量、モダン、約束された、fetch
使用
form.submit()
のようにページをロードする代わりに、 pushForm(form)
を使用してfetch
経由でフォームを送信できます。最新の API を使用してすべてのフィールドを自動的に読み取り、 form
属性で記述されたとおりにリクエストを正確に実行します。
npm install push-form
// This module is only offered as a ES Module
import pushForm from 'push-form' ;
通常のフォーム要素を指定すると、次のようになります。
< 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 >
次のようにfetch
経由で投稿できます。
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!' ) ;
}
} ) ;
または、 ajaxifyForm
使用して、ユーザーの送信を自動的に処理させます。
import { ajaxifyForm } from 'push-form' ;
const form = document . querySelector ( 'form' ) ;
ajaxifyForm ( form , {
onSuccess : ( ) => { /* ✅ */ } ,
onError : ( ) => { /* */ } ,
} ) ;
fetch
とまったく同じようにResponse
で解決されるPromise
返します。
タイプ: HTMLFormElement
送信するフォーム。そのaction
属性とmethod
属性は、HTTP リクエストの作成に使用されます。
タイプ: object
例: {headers: {Accept: 'application/json'}}
これはfetch
の 2 番目のパラメータと一致しますが、 body
とmethod
form
要素の属性で指定した内容でオーバーライドされます。
フォームのsubmit
イベントを停止し、代わりにpushForm
使用します。これにより、 submit
ハンドラーを削除するために呼び出すことができるfunction
が返されます。
pushForm
のものと同じ
タイプ: object
オプションの送信/エラー ハンドラーとfetch
の構成。
タイプ: function
例: (fetchResponse) => {alert('The form was submitted!')}
これは、 fetch
リクエストを作成し、サーバーが成功した応答 ( response.ok
) を返したときに呼び出されます。
タイプ: function
例: (error) => {alert('Something happened:' + error.message)}
これは、 fetch
リクエストに失敗した場合、またはサーバーがエラー応答 ( response.ok === false
) を返した場合に呼び出されます。
pushForm
のものと同じです。
querySelector
/ All
ラッパー。DocumentFragment
または 1 つのElement
に解析します。