Git Product home page Git Product logo

formaline's Introduction

Formaline

The Form Builder

Usage

Formaline can be used to create forms in web applications. The following example creates a form requesting the user's name and phone number:

const form = formaline(document.body, {
  submitEndpoint: 'https://api.example.com/submit',
})
form.text('name', 'Your name')
form.phone('phone', 'Your phone number')

or using cascading initialization:

formaline({ ... })
  .text('name', 'Your name')
  .phone('phone', 'Your phone number')

Validation

Formaline supports validation for fields like phone numbers. While it does not handle the backend part of the validation, it will display a "Validate" button and a field for the user to enter the validation code:

const form = formaline(document.body, {
  validateEndpoint: 'https://api.example.com/validate',
  submitEndpoint: 'https://api.example.com/submit',
})
form.text('name', 'Your name')
form.phone('phone', 'Your phone number', true)

When the user hits the "Validate" button, the name of the field being validated (in this case "phone") and its value are POSTed to the validateEndpoint URL. The server can then send a validation code, e.g. via a text message (SMS).

Arguments

The formaline function receives the parent element for the form and a set of options:

interface Options {
  // A callback trigerred when the user clicks "Validate"
  onValidate?: (name: string, value: string) => Promise<string | void>

  // Validate endpoint URL
  validateEndpoint?: string

  // A callback for trigerred when the form is submitted
  onSubmit?: (data: Data) => Promise<void>

  // Submission endpoint URL
  submitEndpoint?: string

  // Button and message labels (for internationalization)
  labels?: string

Callbacks and endpoints are multually exclusive. Each of validation and submission can only have one of them (although you can mix between them and use, for example, a validation endpoint and submission callback).

formaline's People

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.