Phalange
Phalange is a lightweight (700 bytes
gzipped) JavaScript form library with error handling and fetch (Polyfilled with developit/unfetch)
It's promise-based, which makes running scripts on error/success very easy.
Table of Contents
Getting Started
Install Instructions
Adding Phalange to your project requires NPM. Optinally you could use Yarn.
Run the following command in your project root:
npm install phalange --save
Or with Yarn:
yarn add phalange
Using In Your Project
Using Rollup or WebPack (or another module bundler), you can do like this:
// ES6; // CommonJSvar Phalange = ;
Fetch
Remember to polyfill ;
It's also on unpkg:
Please notice that the fetch
polyfill is NOT included in the UMD version.
Usage
Vue.js example
let fields = todo_text: ""; el: "#app" data: form: '/create-todo' fields methods: { thisform; } ;
API
Phalange
Class
The The Phalange
class is the core of Phalange and the class you'll be using.
Methods
Method | Description | Parameters |
---|---|---|
post |
Sends a POST request to the url specified in the Form object |
|
delete |
Sends a DELETE /DESTROY request to the url specified in the Form object |
|
put |
Sends a PUT request to the url specified in the Form object |
|
submit |
Sends a request with the type specified, to the url specified in the Form object |
type : Any request type possible in the fetch api. Example: form.submit('GET') |
Parameters
Name | Type | Description | Required | Default |
---|---|---|---|---|
url |
string | The url that requests should be send to. | true | '' |
fields |
object | The fields in the form. | true | {} |
options |
object | An object with additional options | false | {} |
options
parameters
Phalange Name | Type | Description | Required | Default |
---|---|---|---|---|
messages |
object | Custom error validation messages. | false | {} |
resetOnSuccess |
boolean | Determines if form fields should be cleared on success. | false | false |
headers |
object | Adds custom headers to each request | false | {} |
url
[REQUIRED]
The url
parameter is the first of three parameters, and it defines which url to send requests to upon submitting. It can be an absolute or relative url, such as: /submit
or https://your-site.com/send
.
fields
[REQUIRED]
The fields that you have in the form. Should be an object of keys with a value (the default input value)
Example:
let fields = username: "" password: ""; // Init formlet formObject = '/login' fields;
Examples
Vue Demo TODO
Preact Demo TODO
Angular Demo TODO
FormSpine
Want client-side validation? Try FormSpine?
It's a larger version of Phalange, with a Validation library. It's almost the same API, but with more functionality.
Get FormSpine here <-- COMING SOON
Inspiration
I found myself creating similar classes for every new project I started, so I felt it was time to combine everything into a single class that I could use for almost all my projects. Of cause, in the nature of sharing, I decided to open source it.
Phalange is inspired heavily on laracasts/vue-forms
If you're into learning, you should really go signup at Laracasts
Build scripts (and more) are heavily based on developit/unfetch.