validated-form

0.1.15 • Public • Published

validated-form

Helpers for creating a form with validated fields.

ValidatedForm

Properties

  • fields An object of field names and options {name: options, ...}. See field options for more information
  • values An object of field values {name: value, ...}
  • onSubmit(values) A function to be called when the form is submitted (only if fields are valid)

Example

<ValidatedForm ref='form' fields={
    city: {}
    state: {placeholder: 'e.g. "NY" or "MA"'}
    county: {optional: true}
} onSubmit={({city, state, county}) -> alert(city + ' is in ' + state) } />

ValidatedField

Properties

  • name Name of this field
  • type One of "text", "number", "email", or "toggle", default is "text"
  • placeholder A placeholder, default is the un-slugified field name
  • error_message Message to show if field is invalid
  • hidden A boolean or function to determine if this field is hidden
  • optional A boolean or function to determine if this field is optional

ValidatedFormMixin

The ValidatedFormMixin provides methods for rendering fields, keeping track of fields state, and checking that fields are valid.

Class attributes

  • getInitialState() -> {values} required
    • A component that uses this mixin must define a getInitialState that returns at least an empty values: {}, because a React component does not have state by default
    • You can also use this to pre-fill values of fields, with e.g. values: {email: 'test@gmail.net'}
  • getDefaultProps() -> {fields, onSubmit}
    • Define fields and other props here, or pass them in as props instead
  • onSubmit(values)
    • A function to be called when the form is submitted (only if fields are valid)
    • Can be defined directly on your class instead of as a property

Properties

  • fields An object of field names and options in the shape {name: options, ...}. See field options for more information
  • onSubmit(values) A function to be called when the form is submitted (only if fields are valid)

State

  • values An object of values by field name

Methods from mixin

  • renderField(name) Render an individual field with the options in fields[name]
  • trySubmit() A method that looks through fields
  • clear() Sets all field values to null

Example

{ValidatedFormMixin} = require 'validated-form'

FormTest = React.createClass
    mixins: [ValidatedFormMixin]

    getInitialState: ->
        values:
            name: 'test'

    getDefaultProps: ->
        fields:
            name: {type: 'text'}
            age: {type: 'number'}
            email: {type: 'email'}

    onSubmit: (values) ->
        @setState {loading: true}
        submitFormAnd =>
            @clear()
            @setState {loading: false}

    render: ->
        <div>
            <form onSubmit=@trySubmit>
                {@renderField 'name'}
                {@renderField 'age'}
                {@renderField 'email'}
                <button>{if @state.loading then "Loading..." else "Submit"}</button>
            </form>
        </div>

Readme

Keywords

none

Package Sidebar

Install

npm i validated-form

Weekly Downloads

0

Version

0.1.15

License

none

Last publish

Collaborators

  • chadlieberman
  • spro