• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

191
Vistas
No activar onchange cuando se usa autocompletar, ¿es posible?

Quiero verificar un valor después de que un usuario terminó de completar el campo de entrada con una lista de valores aceptados. Estoy usando autocompletar. El problema al que me enfrento es que

  • si el usuario escribe el valor aceptado y NO usa autocompletar, todo está bien
  • pero si el usuario escribe el valor aceptado solo parcialmente y luego usa autocompletar, entonces la función que estoy usando para verificar se activa dos veces. Once vez que el usuario terminó de ingresar el valor. En este punto, mi función evalúa que el valor ingresado no está permitido. Luego, una vez que el autocompletado cambia el valor al valor seleccionado por el usuario, mi función de verificación se activa nuevamente y ahora el valor ingresado se reconoce como correcto.

Por supuesto, este no es el comportamiento correcto de mi aplicación. Necesito verificar el valor en ambos casos cuando se escribe o cuando se usa autocompletar. El campo de entrada es parte de un formulario, por lo que puedo evaluarlo después de enviarlo, pero el formulario es bastante complejo y quiero que el usuario sepa que el valor NO se acepta de inmediato.

Trabajando jsFiddle .

codigo javascript

 var elemOptions = { data: { "Radek Surname ": null, "Radek": null, "Radoslav": null }, minLength : 2, } var elemAutomplete = document.getElementById('autocomplete-input1') var autocomplete = M.Autocomplete.init(elemAutomplete, elemOptions); var names = { "Radek": null, "Radoslav":null} function checkName(){ var result = false var name = document.getElementById("autocomplete-input1") console.log(name.value.trim()) console.log(!(name.value.trim() in names)) if (!(name.value.trim() in names) ){ var errorText = "accepting values from autocoplete only" name.value = "" result = false console.log(errorText) }else{ result = true } return result }

Si escribe Rade y luego selecciona Radek de autocompletar, obtendrá

 "Rade" true "accepting values from autocoplete only" "Radek" false
almost 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda