# react-material-ui-form-validator **Repository Path**: mirrors_suryagh/react-material-ui-form-validator ## Basic Information - **Project Name**: react-material-ui-form-validator - **Description**: Simple validator for forms designed with material-ui components. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2026-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Validation component for material-ui forms [![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/react-material-ui-form-validator.svg)](https://badge.fury.io/js/react-material-ui-form-validator) [![Build Status](https://travis-ci.org/NewOldMax/react-material-ui-form-validator.svg?branch=master)](https://travis-ci.org/NewOldMax/react-material-ui-form-validator) ### [Demo](https://newoldmax.github.io/react-material-ui-form-validator/) ### Installation ```` npm install react-material-ui-form-validator ```` ### Versions + 0.x, 1.x - supports material-ui <= 0.x + ^2.0.0 - supports material-ui >= 1.x || 3.x Implementation of [react-form-validator-core](https://www.npmjs.com/package/react-form-validator-core) for [material-ui](https://material-ui.com/) Supported types: + Text ([TextValidator](https://github.com/NewOldMax/react-material-ui-form-validator/blob/master/src/TextValidator.jsx)) + Select ([SelectValidator](https://github.com/NewOldMax/react-material-ui-form-validator/blob/master/src/SelectValidator.jsx)) Some rules can accept extra parameter, example: ````javascript ```` ### Example ### Usage You can pass any props of field components, but note that ``errorText`` prop will be replaced when validation errors occurred. Your component must [provide a theme](http://www.material-ui.com/#/get-started/usage). ````javascript import React from 'react'; import Button from '@material-ui/core/Button'; import { ValidatorForm, TextValidator} from 'react-material-ui-form-validator'; class MyForm extends React.Component { state = { email: '', } handleChange = (event) => { const email = event.target.value; this.setState({ email }); } handleSubmit = () => { // your submit logic } render() { const { email } = this.state; return ( console.log(errors)} > ); } } ```` You can add your custom rules: ````javascript import React from 'react'; import Button from '@material-ui/core/Button'; import { ValidatorForm, TextValidator} from 'react-material-ui-form-validator'; class ResetPasswordForm extends React.Component { state = { user: { password: '', repeatPassword: '', }, }; componentDidMount() { // custom rule will have name 'isPasswordMatch' ValidatorForm.addValidationRule('isPasswordMatch', (value) => { if (value !== this.state.user.password) { return false; } return true; }); } handleChange = (event) => { const { user } = this.state; user[event.target.name] = event.target.value; this.setState({ user }); } handleSubmit = () => { // your submit logic } render() { const { user } = this.state; return ( ); } ```` Currently material-ui [doesn't support](https://github.com/callemall/material-ui/issues/3771) error messages for switches, but you can easily add your own: ````javascript import React from 'react'; import red from '@material-ui/core/colors/red'; import Checkbox from '@material-ui/core/Checkbox'; import { ValidatorComponent } from 'react-material-ui-form-validator'; const red300 = red['500']; const style = { right: 0, fontSize: '12px', color: red300, position: 'absolute', marginTop: '-25px', }; class CheckboxValidatorElement extends ValidatorComponent { render() { const { errorMessages, validators, requiredError, value, ...rest } = this.props; return (
{ this.input = r; }} /> {this.errorText()}
); } errorText() { const { isValid } = this.state; if (isValid) { return null; } return (
{this.getErrorMessage()}
); } } export default CheckboxValidatorElement; ```` ````javascript componentDidMount() { ValidatorForm.addValidationRule('isTruthy', value => value); } ... ```` ##### [Advanced usage](https://github.com/NewOldMax/react-material-ui-form-validator/wiki) ### Contributing This component covers all my needs, but feel free to contribute.