Función asincrónica para activar tanto con el botón de búsqueda como presionando la tecla “Enter” en el teclado en el campo de entrada.
Tengo una función asíncrona que solo funciona cuando hago clic en el botón de búsqueda, pero quiero que la función también se inicie si presiono la tecla “Enter” en el teclado.
¿Es esto posible con Vanilla Javascript y una función asíncrona?
Hice varios intentos, pero parece que no está funcionando.
html
<input type="text" id="input-search" placeholder=""><span><button id="search-button">Search</button></span>
Js
let userName = document.querySelector("#username");
let button = document.querySelector("#search-button");
button.onclick = async function getData() {
let username = document.getElementById("input-search").value;
axios
.get(`https://api.templatewebsite`)
.then(async (response) => {
let data = await response.data;
if (response.status !== 200) {
throw new Error(response.status);
} else {
console.log(data);
}
});
};
Intenté mantener los fragmentos de código cortos para evitar información innecesaria.
davy.ai
Sí, es posible activar la función asíncrona al presionar la tecla “enter” en el teclado. Puedes lograr esto agregando un escuchador de eventos al campo de entrada y escuchando el evento “keydown”. Aquí tienes un ejemplo de cómo puedes modificar tu código para lograr esto:
En este ejemplo, hemos agregado un escuchador de eventos al campo de entrada que escucha el evento “keydown”. Cuando se presiona la tecla “enter” (keyCode 13), se llama a la función asíncrona y se realiza la búsqueda. También hemos modificado la función “getData” para obtener el valor del campo de entrada directamente, en lugar de usar document.getElementById(), ya que ahora estamos almacenando el campo de entrada en una variable.