Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

172
Views
Cómo arrojar un error cuando la edad es inferior a 5 años en el gancho de reacción useHookForm

En el formulario tengo un date-picker . Desde el date-picker el usuario selecciona la fecha de nacimiento. Quiero arrojar un error, si la edad es inferior a cinco años a partir de la fecha actual. Supongamos que el usuario selecciona el año 2015, entonces debería arrojar un error.

 <div class="input-group date" data-provide="datepicker"> <input {...register("dob", { required: true, })} type="date" id="birthday" min="1899-01-01" max="2000-13-13" class="form-control" onClick={set} /> {errors?.dob?.type === "required" && ( <p>This field is required</p> )} <div class="input-group-addon"> <span class="glyphicon glyphicon-th"></span> </div> </div>
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Debe definir una función de validate personalizada para verificar la fecha seleccionada y pasarla a la sección de register .

Un ejemplo mínimo y básico:

 const validateDate = (value) => { const selected = new Date(value).getFullYear(); const now = new Date().getFullYear(); return now - selected >= 5; }; ... <input {...register("dob", { required: true, validate: validateDate })} type="date" id="birthday" min="1899-01-01" max="2000-13-13" class="form-control" onClick={set} /> {errors?.dob?.type === "required" && ( <p>This field is required</p> )} {errors?.dob?.type === "validate" && <p>Invalid date</p>}

CódigoSandbox

about 4 years ago · Juan Pablo Isaza Report

0

Entonces, según sus códigos, esto es lo que debe hacer:

 const { register, handleSubmit, formState: { errors }, watch, setError } = useForm(); const onSubmit = (data) => console.log(data); useEffect(() => { const db = watch("dob"); if (db) { const dbDate = new Date(db).getFullYear(); const currentDate = new Date().getFullYear(); const age = currentDate - dbDate; if (age < 5) { setError("dob", { type: "too young", message: "Sorry bro! you're too young to use this ;)" }); } } }, [watch("dob")]);

y luego usa el error donde quieras:

 {errors?.dob?.type === "too young" && ( <p style={{ color: "red" }}>{errors.dob.message}</p> )}

aquí hay una demostración funcional para mostrar cómo se ve: https://codesandbox.io/s/funny-surf-d4gtt?file=/src/App.js:2336-2453

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!