hypejunction / elgg-ajax-form
Handling form submissions with promises
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Language:JavaScript
Type:elgg-plugin
Requires
- php: >=7.0
- composer/installers: ~1.0
- npm-asset/codemirror: ^5.43
This package is auto-updated.
Last update: 2024-10-29 06:11:37 UTC
README
Dealing with form submission using jQuery is hell, especially when you have to bind multiple handlers that depend on each other. This plugin provides a module that can be used to queue promise-based handlers.
var Form = require('ajax/Form'); var form = new Form('.my-form'); var Ajax = require('elgg/Ajax'); form.onSubmit(function(resolve, reject) { // execute a long running script, e.g. validate fields via ajax var ajax = new Ajax(); ajax.post('somewhere').done(resolve).fail(reject); }) form.onSubmit(function(resolve, reject) { console.log('hello'); resolve(); }); // By default, once all promises are resolved, the form will be submitted via ajax, // and the user will be forwarded to the URL specified by the response // You can however register custom success callbacks to prevent redirection form.onSuccess(function(data) { console.log(data); require('elgg/lightbox', function(lightbox) { lightbox.close(); }); $('.my-list').refresh(); }); // You can also add your own error handler form.onError(function(error) { console.log(error); });