# react-easy-validate

> Simple validator for React forms.

Latest version **1.0.0** (published 2019-02-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-easy-validate
pnpm add react-easy-validate
yarn add react-easy-validate
bun add react-easy-validate
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2019-02-15 |
| First published | 2019-01-30 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 41.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | alex-zzzz |
| Maintainers | alex-z |
| Keywords | react, easy, form, validation, validate |

## Links

- npm: https://www.npmjs.com/package/react-easy-validate
- Repository: https://github.com/alex-zzzz/react-easy-validate
- Issues: https://github.com/alex-zzzz/react-easy-validate/issues
- npm.io page: https://npm.io/package/react-easy-validate

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2019-02-15
- 0.1.1 — 2019-02-01
- 0.1.0 — 2019-01-31
- 0.0.5 — 2019-01-30
- 0.0.4 — 2019-01-30
- 0.0.3 — 2019-01-30
- 0.0.2 — 2019-01-30
- 0.0.1 — 2019-01-30

## README

# React easy validation BETA



Another validation on React which I use actively 


## Get started

**Install**  
`
npm i react-easy-validate
`

**First steps**  
a) Import component
```jsx
import {Validate} from 'react-easy-validate';
```

b) Create new Validation instance with fields that you will validate and create link for your component

```js
constructor() {
    super();
	this.validator = new Validate({
		fields: {
			email: {
				rules: 'required,email',
			},
			password: {
				rules: ['required', val => val.length > 5 ? true : 'Password is incorrect'],
			},
		},
		scope: this
	})
}
```
It's all that you must do for setting your component

Next choose one on ways for show validation errors:

### Simple way (with curly braces)

After input field (or on other place) call the 'check' method of Validation with name of property in your Validate config

```jsx harmony
<input name="email"
       placeholder='email'
       onChange={this.changeHandler}
/>
{this.validator.check('email')}
```
### By component's DOM element, with creating ref for parent element of inputs
1. Add params to validation settings
```js
this.validator = new Validate({
    fields: {
        email   : {
            rules: 'required,email',
        },
        password: {
            rules: ['required', val => val.length > 5 ? true : 'Password is incorrect'],
        },
    },
    createErrorElement: true, // it can be Object if u want to pass settings
    element: this.validationNode,
    scope: this,
});
```
2. Add to each element name and add validation wrapper class to wrapper (by default wrapperClass = form-group). Save ref of form element or other wrapper element
```jsx harmony
<form onSubmit={this.submitForm} ref={node => this.validationNode = node}>
	<div className='form-group'>
		<input name="email"
			   placeholder='email'
			   onChange={this.changeHandler}
		/>
	</div>
</form>
```
### By refs for each input element
1. Add params to validation settings
```js
this.validator = new Validate({
    fields: {
        email   : {
            rules: 'required,email',
        },
        password: {
            rules: ['required', val => val.length > 5 ? true : 'Password is incorrect'],
        },
    },
    createErrorElement: {
    	findAllByRefs: true, // add this param
    },
    scope: this,
});
```
2. Add for each element name and ref then add validation wrapper class to wrapper
```jsx harmony
<div className='form-group'>
	<input name="email"
		   placeholder='email'
		   ref='emailRef'
		   onChange={this.changeHandler}
	/>
</div>
```

#TODO

Refactor code

Add more validation rules and do them more expandable

Add Api info

# License

MIT.

[rimraf]: https://github.com/isaacs/rimraf

---
_Source: https://npm.io/package/react-easy-validate · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
