Cuando se usan etiquetas <form> , tiene un comportamiento integrado para la tecla enter, que ejecuta el envío. Decidieron hacerlo usando keydown, por lo que crea problemas de spam. Por ejemplo, si tengo un formulario para una lista de tareas y mantengo presionada la tecla Intro, generará el mismo elemento de tarea. Quiero que sea keyup o keypress en lugar de keydown, todavía me gustaría ingresar la tecla para enviar en lugar de deshacerme de todo junto. Usar blur() tampoco funciona ya que no se enfoca en el botón en primer lugar.
<form> <label>username <input type="text" /> </label> <label>password <input type="text" /> </label> <button type="submit">Login</button> </form> document.querySelector("form").addEventListener("submit", event => { event.preventDefault(); console.log( "submitted" ); })