Initiate react-hook-form
const {register, handleSubmit, reset, formState: {errors}, watch} = useForm();
Set validation as like below
const confirm_password = useRef({}); confirm_password.current = watch('confirm_password', '');
Form field setup would be as
<Form.Group className='form-group'> <Form.Control type='password' placeholder='Enter Password' {...register('password', { required: 'Required', } )} /> <p>{errors?.password?.message}</p> </Form.Group> <Form.Group className='form-group'> <Form.Control type='password' placeholder='Repeat Password' {...register('confirm_password', { validate: value => value === password.current || "The passwords do not match" } )} /> <p>{error?.confirm_password?.message}</p> </Form.Group>
If there are multiple forms on one page or comparison, see this POST to set up watch for multiple react-hook-form.