validate()
Specification
Performs manual validation of the referenced Form
.
Always favor conventional form submit via Button[type="submit"]
. Form validation is obviously included prior to submit action, so there is no need to explicitly invoke validation. However, there are use cases to refer to manual validation. Please see those below.
Definition
type Validate = () => Promise<boolean>
Use cases
There are several use cases when using manual validation may be appropriate, as opposed to conventional form submit flow.
Submitting multiple forms at once
In this case you may want to validation each form independently, and perform a submit based on the accumulated validity of all forms.
Logic dependent on the runtime validity of a form
You may want to show/hide different UI elements, or perform any subsequent actions based on the validity of a form in the given point of time (apart of submit).
Example
Simple example
import React from 'react'
import { Form } from 'react-advanced-form'
import { Input } from 'react-advanced-form-addons'
export default class Example extends React.Component {
handleClick = () => {
this.form.validate().then((isFormValid) => {
// ...
})
}
render() {
return (
<div>
<Form ref={form => this.form = form}>
<Input
name="username"
required />
</Form>
<a href="#" onClick={this.handleClick}>Validate</a>
</div>
)
}
}
Using async/await
Since validate function returns a Promise, you can use async/await to retrieve the validity of a form in a single line:
handleClick = async () => {
const isFormValid = await this.form.validate()
}
Last updated