Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

326
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda