Да, проверка, чтобы принять более 0 входных цифр. Как пользователь может ввести 0,001 или 0,0001. Но не только 0

#reactjs #formik #yup

Вопрос:

Я работаю над проектом, где в админ-панели врач может установить комиссию за свое лечение. Но он может быть длиной всего в 2 цифры. Но комиссия не может быть равна 0. Это может быть что угодно 0,01 или 0,001. Я создал форму, используя formik и да. Но не знаю, как настроить поле ввода для этой работы. Я пробовал и искал, но не нашел никакого решения.

Да, проверка

   commission: Yup.string()
      .required()
      .matches(/^[0-9] $/, "Commission should contain only digits")
      // .min(1, 'Must be exactly 1 digits')
      .max(2, "Commission should not be more than 2 digits"),
 

код поля ввода

 <div className="form-group">
                        <label>
                          Commission(%) <span className="text-danger">*</span>{" "}
                        </label>
                        <input
                          type="text"
                          className="form-control"
                          name="commission"
                          value={formik.values.commission}
                          onChange={formik.handleChange}
                          onBlur={formik.handleBlur}
                          min="0.01"
                        ></input>
                        {formik.touched.commission amp;amp;
                        formik.errors.commission ? (
                          <div className="err">{formik.errors.commission}</div>
                        ) : null}
                      </div>```


 

Ответ №1:

Обновите свою проверку yup до:

 commission: Yup.number()
      .required()
      .moreThan(0, 'commision should not be zero or less than zero')
      .lessThan(100, "Commission should not be more than 2 digits"),
 

А также измените тип поля ввода:

 <input
     type='number'
     ...
   />
 

Комментарии:

1. получение — Ошибка типа: да__WEBPACK_ИМПОРТИРОВАННЫЙ_МОДУЛЬ_5__.строка(…).требуется(…).Больше не является функцией

2. Вместо Yup.string()…. напишите Да.номер()…

3. Спасибо, что я изменил, теперь он не показывает ошибку. Но это только значит, что я не могу заполнить отрицательное значение. Но я все еще могу сохранить форму, имеющую значение 0

4. укажите некоторые значения, которые вы хотите сохранить