¿Enviar la búsqueda con la tecla Enter?

¿Qué se debe hacer para que se envíe este formulario cuando alguien presione la tecla "Intro"?

<form id="search" onsubmit="javascript:search(document.getElementById('searchText'))">
  <input type='text' id='searchText' autofocus />
  <input type='button' onclick="search(document.getElementById('searchText'))" value='Search' />
</form>

preguntado el 27 de agosto de 11 a las 23:08

Necesitas una <input type="submit"/> elemento. No estoy seguro de lo que está haciendo con Javascript. -

Aparte: por qué no usar en lugar de -

2 Respuestas

Puede usar un formulario como el siguiente, con el tipo de entrada enviar, que en este caso, si presiona Intro en cualquier entrada, si tiene más, será un comportamiento predeterminado del formulario que se enviará:

<form id="search">
  <input type='text' id='searchText' />
  <input type='submit' value='Search' />
</form>

o, como se muestra, desea utilizar la función onsubmit y manejar el "enviar" del formulario, por lo que puede hacer esto:

<form id="search" action="#">
    <input type="text" id='searchText' name="myinput" onkeypress="handle" />
</form>

<script>
    function handle(e){
        if(e.key === "Enter"){
            alert("Enter was just pressed.");
        }

        return false;
    }
</script>

Se puede encontrar un código, bastante parecido, en esta pregunta similar: ¿Cómo capturar la pulsación de la tecla Intro?

Espero haber respondido a tu pregunta, incluso fuera de tiempo.

Respondido 30 Jul 19, 02:07

Este ejemplo funcionó perfectamente para mí:

var input = document.getElementById("myInput");

// Execute a function when the user releases a key on the keyboard
input.addEventListener("keyup", function(event) {
  // Number 13 is the "Enter" key on the keyboard
  if (event.keyCode === 13) {
    // Cancel the default action, if needed
    event.preventDefault();
    // Trigger the button element with a click
    document.getElementById("myBtn").click();
  }
});

Tomé el ejemplo en w3schools.

Respondido el 26 de enero de 21 a las 21:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.