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

315
Views
React JS Autocompletar: validar el control según la opción seleccionada

Estoy trabajando en la validación de un control Autocompletar usando React JS y MaterialUI, por defecto se carga la opción "por favor seleccione..." como en esta imagen:

valor predeterminado de autocompletar

Si el usuario pulsa Enviar Orden y el valor seleccionado es el primero se envía un mensaje de error al usuario; pero si el usuario eligió una opción diferente, el estado de Autocompletar sigue siendo erróneo, mire esta imagen:

ingrese la descripción de la imagen aquí

El siguiente código muestra cómo administro el código de Autocompletar:

 <div className={clientMethodPaymentControlClasses}> <label htmlFor="clientMethodPayment">Method of Payment *</label> <Autocomplete id="clientMethodPayment" options={paymentMethods} defaultValue={paymentMethods[0]} getOptionLabel={(option) => option.title} ref={clientMethodPaymentRef} onChange={(e,v) => setPaymentMethodValue(v)} style={{ width: 300 }} autoHighlight renderInput={(params) => ( <TextField {...params} onChange={({ target }) => setPaymentMethodValue(target.value)} variant="outlined" fullWidth autoComplete="off" /> )} /> {!formInputsValidity.clientMethodPayment && ( <p>Please choose a method of payment</p> )} </div>

Uso el siguiente código para la lista de valores y cómo administro el estado del control:

 const paymentDefaultValue = (value) => value !== "Please choose an option"; const paymentMethods = [ { title: "Please choose an option", id: 0 }, { title: "Cash", id: 1 }, { title: "Credit Card", id: 2 }, { title: "Crypto Currency", id: 3 }, ]; const OrderDetails = (props) => { const [paymentMethodValue, setPaymentMethodValue] = useState(paymentMethods[0]);

Además, el siguiente código es la clave para clasificar si un control tiene errores de entrada:

 const enteredClientMethodPaymentIsValid = !paymentDefaultValue( enteredClientMethodPayment );

El caso es que no puedo captar si el usuario eligió una opción diferente a la predeterminada y por esa razón el control siempre está marcado como error, entonces mi pregunta es: ¿qué me falta para validar mi control de Autocompletar? En caso de que pueda ser útil, este es el código completo: https://github.com/hftamayo/reactletsorder/blob/unstable/src/components/FoodOrder/Cart/OrderDetails.js

Muchas gracias

about 4 years ago · Juan Pablo Isaza
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!