Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

244
Visualizações
Activar evento keyup cuando se presiona la pestaña en Javascript

Estoy tratando de imitar el comportamiento de la tecla "Enter" en mi Código usando la tecla "Tab". Intenté usar "keydown" que imprime el archivo console.log pero no me permite ingresar nada en el campo de entrada. Aquí está mi código.

Archivo HTML:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="test.css"> <title>Document</title> </head> <body> <div class="input"> <input id="text-area"> <button id="myBtn" onclick="selectText()" >Select Text</button> </div> <script src="test.js"></script> </body> </html>

Archivo JavaScript:

 let input = document.getElementById('text-area'); let button = document.getElementById('myBtn'); input.addEventListener("keyup",e=>{ e.preventDefault(); if(e.key=='Enter'){ console.log("Enter is pressed"); button.click(); } }); function selectText(){ let input1 = document.getElementById('text-area'); input1.focus(); input1.select(); }
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

La tecla TAB es una tecla especial reservada para la navegación entre elementos HTML. Entonces, para usarlo para cualquier cosa además de la navegación, debe interceptar el evento keydown para esta tecla y llamar a preventDefault() en él.

Por ejemplo:

 let input = document.getElementById('text-area'); let button = document.getElementById('myBtn'); input.addEventListener("keyup", e => { if (e.key == 'Tab') { console.log("Enter/Tab is pressed"); button.click(); } }); input.addEventListener("keydown", e => { if (e.key == 'Tab') { e.preventDefault(); } }); function selectText() { let input1 = document.getElementById('text-area'); input1.focus(); input1.select(); }
 <div class="input"> <input id="text-area"> <button id="myBtn" onclick="selectText()">Select Text</button> </div>

about 4 years ago · Santiago Trujillo Relatório

0

Actualizar esta respuesta solo está relacionada con Angular, no con javascript

En tu caso puedes escribir simplemente
 <input (keydown.tab)="selectText()">

Y olvídate de crear un eventListener keydown.enter.

Pero responda a su pregunta, puede dispathEvent . Algo como(*)

 <!--see how you create a template reference variable and pass to the function--> <input #inputId (keydown.tab)="createEnterEvent(inputId)"> createEnterEvent(el: HTMLInputElement) { const event = new KeyboardEvent('keydown',{ code: "Enter", key: "Enter", keyCode: 13 }); el.dispatchEvent(event); }

Pero esto no hace un "envío" del formulario. Solo es útil si tiene un evento keydown.enter definido en su entrada

(*)NOTA sobre la variable de referencia de la plantilla. En Angular 13, cuando pasa como función, tiene el "HTMLElement", cuando usa @ViewChild , obtiene un elementRef y debe usar yourVariable.nativeElement para obtener el htmlElement

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda