A lightweight handler for submitting HTML forms via AJAX.
Supports CommonJS (CJS) and ES Modules (ESM).
npm i @dpsys/ajax-form<form name="my_form" method="post">
<input type="text" name="my_form[something]" required="required">
<button type="submit" name="my_form[submit]">Submit</button>
</form>This example uses Axios. Feel free to use any other AJAX implementation.
import ajaxForm from '@dpsys/ajax-form';
import axios from 'axios';
ajaxForm('my_form').setSubmitCallback( (axForm, formData) =>
{
axios.post('/some-route', formData)
.then( (resp) =>
{
if (resp.data.formErrors)
{
axForm.showErrors(resp.data.formErrors);
}
else if (resp.data.success)
{
// Do something...
axForm.reset();
}
});
});Creates and returns an AjaxForm instance for handling the specified form.
form: A form element (HTMLElement), CSS selector (string), or form name (string).
Sets a callback function to handle form submission.
callback(axForm, formData): Function called on submit.axFormis the instance,formDatais a FormData object.
Displays error messages by inserting <span> elements after input fields.
errors: Array of objects with{field_id: string, message: string}.
Returns the form element.
Resets the form to its default values.