1.9.2 • Published 1 year ago

solid-former v1.9.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Solid Former

Form validation for SolidJS

Online Demo

Install

npm i solid-former

Quick Start

Create form object in your component

const form = createForm({
  fields: { 
    username: '', 
    password: '', 
    isAgree: false
  },
  validators: [
    ({ username }) => username.length >= 1 || { username: 'Username is too short!' },
    
    ({ password }) => password.length >= 8 || { password: 'Password is too short!!' },
    
    ({ isAgree })  => isAgree === true || { isAgree: 'Either agree to terms or give us -$500!' },
    
    ({ password, username }) => !password.includes(username) || { password: 'Dont include username in password!' },
  ],
  onSubmit(fields) {
    console.log(fields)
  }
})

Validator has this structure

(fields) => <I expect this to be true> || <otherwise return error>

Then you can just do this

<>
  {/* Bind field to input */}
  <input 
    value={form.fields().username.value} 
    oninput={e => form.input('username', e.currentTarget.value)}
  />
  
  {/* Display error */}
  <Show when={form.fields().username.error}>
    <p>{form.fields().username.error}</p>
  </Show>
<>

Submit the form

form.submit()

Done!

Need more info? Check out live example or read about api

Api

const formInstance = createForm(formOptions)

Form options

optiondescriptionrequired
fieldsFields of formyes
validatorsList of validators. A validator is a function that takes fields and validates them. It has to return either the boolean true or an error objectyes
validateOnInputIf true it validates on everytime when any of the fields changes. Otherwise it will validate only when submit method is called. Disabled by defaultno
stopAtFirstErrorIf true it stops at first error. Otherwise it provides all errors. Enabled by defaultno
onSubmit()Triggered when form.submit() called and validated without errorsno
onChange()Triggered when any of the fields changeno

Form instance

property/methoddescription
fields()Represents all fields. One field has three reactive properties: name, error, value
isValid()Tells whether form is valid or not
isTouched()Tells if at least one of fields has been changed
input()Updates one field. Takes name of field and new value
reset()Resets all values to defaults
submit()Submits form. Meaning validates form and calls the onSubmit after successful submit
errorCount()Current error count

Contributions

Always welcome to people who can improve or add something useful

1.9.1

1 year ago

1.9.0

1 year ago

1.8.1

1 year ago

1.8.0

1 year ago

1.7.8

1 year ago

1.9.2

1 year ago

1.7.7

2 years ago

1.7.5

2 years ago

1.7.0

2 years ago

0.5.0

2 years ago

1.2.0

2 years ago

1.0.0

2 years ago