Задать вопрос
sanManjiro
@sanManjiro

Как сделать проверку перед отправкой формы в react-hook-form?

В моей форме по мима инпутов используются checkbox'ы, где устанавливается гендер:
<div className="input_box_radio_list">
<label className={ clicked === true ? "control-label label-radio active" : "control-label label-radio" }>
    <input
        className=""
        type="radio"
        data-id="gender"
        data-required="true"
        name="pasportnye_dannye[gender]"
        checked="checked"
        data-index_group=""
        onClick={ handlerClickedMan }
    />
Мужской
</label>
<label className={ clicked === false ? "control-label label-radio active" : "control-label label-radio" }>
    <input
        className=""
        type="radio"
        data-id="gender"
        data-required="true"
        name="pasportnye_dannye[gender]"
        data-index_group=""
        onClick={ handlerClickedWoman }
/>
Женский
</label>
</div>
{ clicked === undefined ? <WarrningError><p style={{paddingTop: "10px"}} >Необходимо выбрать гендор</p></WarrningError> : undefined }

Хендлеры:
const handlerClickedMan = () => {
    setClicked(true)
    setGender("Мужской")
  }
  const handlerClickedWoman = () => {
    setClicked(false)
    setGender("Женский")
  }

Проблема заключается в том, что при таком подходе я не могу проверить, выбрал ли пользователь гендер или нет, так как нет проверка required, как в остальных инпутах, поэтому могу ли я как-то сначала проверить, равен ли мой clicked не undefined, а после этого уже отправить форму?
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 250 000 до 300 000 ₽
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽