مثل
form.submit()، لكن بطريقة ajaxed. خفيف الوزن، حديث، موعود، يستخدمfetch
بدلاً من التسبب في تحميل الصفحة كما يفعل form.submit() ، يمكنك استخدام pushForm(form) لإرسال نموذج عبر fetch . يقرأ تلقائيًا جميع الحقول باستخدام واجهات برمجة التطبيقات الحديثة وينفذ الطلب تمامًا كما هو موضح في سمات 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 : ( ) => { /* */ } ,
} ) ; إرجاع Promise يتم حله من خلال Response تمامًا كما يفعل fetch .
النوع: HTMLFormElement
النموذج المراد تقديمه. سيتم استخدام سمات action method لإنشاء طلب HTTP.
النوع: object
مثال: {headers: {Accept: 'application/json'}}
يتطابق هذا مع المعلمة الثانية لـ fetch ، ولكن سيتم تجاوز body method بما يحدده عنصر form في سماته.
يوقف حدث submit النموذج ويستخدم pushForm بدلاً من ذلك. يؤدي هذا إلى إرجاع function يمكنك استدعاؤها لإزالة معالج submit .
نفس الموجود في 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 أو Element واحد ببضعة بايت.