https://github.com/horprogs/just-validate
Modern, simple, lightweight (~5kb gzip) form validation library written in Typescript, with no dependencies (no JQuery!). Support a wide range of predefined rules, async, files, dates validation, custom error messages and styles, localization. Support writing custom rules and plugins.
https://github.com/horprogs/just-validate
async-validation file-validation form form-validation forms input javascript validation vanilla-javascript
Last synced: 6 days ago
JSON representation
Modern, simple, lightweight (~5kb gzip) form validation library written in Typescript, with no dependencies (no JQuery!). Support a wide range of predefined rules, async, files, dates validation, custom error messages and styles, localization. Support writing custom rules and plugins.
- Host: GitHub
- URL: https://github.com/horprogs/just-validate
- Owner: horprogs
- License: other
- Created: 2016-12-12T21:37:51.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-05-08T07:35:20.000Z (12 days ago)
- Last Synced: 2025-05-08T08:34:48.539Z (12 days ago)
- Topics: async-validation, file-validation, form, form-validation, forms, input, javascript, validation, vanilla-javascript
- Language: TypeScript
- Homepage: https://just-validate.dev/
- Size: 2.8 MB
- Stars: 552
- Watchers: 14
- Forks: 90
- Open Issues: 51
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://codecov.io/gh/horprogs/Just-validate)
![]()
[](https://www.npmjs.org/package/just-validate)
[](https://www.codacy.com/gh/horprogs/Just-validate/dashboard?utm_source=github.com\&utm_medium=referral\&utm_content=horprogs/Just-validate\&utm_campaign=Badge_Grade)
[](https://snyk.io/test/github/horprogs/Just-validate)
[](https://github.com/horprogs/Just-validate/actions)Modern, simple, lightweight (~5kb gzip) form validation library written in Typescript, with no dependencies (no JQuery!).
Support a wide range of predefined rules, async, files, dates validation, custom error messages and styles, localization.
Supporting writing custom rules and plugins.## Why JustValidate?
It's a right choice for you, if you have a site, a landing page without React, JQuery etc.
and you want to quick, simple and powerful solution for validating your form.## Features
* small size and zero dependencies
* no need to change your HTML
* a wide range of pre-defined rules
* custom rules
* support plugins
* custom styles and css classes for invalid fields and error messages
* custom messages
* showing tooltips as error messages
* custom places for the error labels
* localization (defining error messages for different languages)
* user-friendly setup: console warning messages if something incorrect
* written in Typescript and good test coverage## Installation
### npm
```shell
npm install just-validate --save
```### yarn
```shell
yarn add just-validate
```And then use it as an imported module:
```js
import JustValidate from 'just-validate';const validate = new JustValidate('#form');
```Or if you don't use module bundlers, just include JustValidate script on your page from CDN and call it as `window.JustValidate`:
```html
const validate = new window.JustValidate('#form');
```
## Predefined rules
There are plenty of rules which you could use out of the box:
* required, non-empty fields
* valid email address
* min/max text length
* valid number
* min/max number
* valid password
* valid strong password
* check for the custom regexp
* min/max count of uploaded files
* min/max size, types, extensions, names of uploaded files
* format date, check for isAfter/isBefore dates## Quick start
Let's say we have a basic HTML layout:
```html
Enter your name
Enter your email
Submit```
Next, let's add JustValidate to our layout and define some simple rules.
First, we should create the instance `new JustValidate('#form')` by passing a form selector, or the element as an argument.
Second, we call `.addField()` with a field selector as the first argument and an array of rules as the second argument.
```js
const validation = new JustValidate('#form');validation
.addField('#name', [
{
rule: 'minLength',
value: 3,
},
{
rule: 'maxLength',
value: 30,
},
])
.addField('#email', [
{
rule: 'required',
errorMessage: 'Email is required',
},
{
rule: 'email',
errorMessage: 'Email is invalid!',
},
]);
```And that's it! Now our form is validated!
## More
Please, check out the [examples](https://just-validate.dev/examples/) and [documentation](https://just-validate.dev/docs/intro/). Or try the [playground](https://just-validate.dev/playground/).