Estoy validando un número de tipo de entrada, solo debe aceptar valores de 0 a 9999 . No puede haber puntos/decimales ni nada por el estilo. Lo estoy haciendo de una manera pirateada, pero aún arroja un error cuando ingresa 0.0 . La entrada no puede recibir ningún tipo de carácter especial, solo números enteros del 0 al 9999 .
// Initial value is an string integersOnly(value) { // So I need to convert it to a number const turnValueIntoANumber = Number(value); return (isNaN(turnValueIntoANumber) || !Number.isInteger(turnValueIntoANumber)) && 'Only integers allowed'; }El campo:
<Field min={0} max={9999} name="time" type="number" validate={[this.integersOnly]} > TIME </Field>¿Qué estoy haciendo mal?
Creo que estás usando formik. ¿Qué pasa con el uso del generador de esquemas yup para la validación? mira esto: sí documentación
puedes usar
yup.number().required().positive().integer()