2011-10-24 15 views
5

Tengo un campo de entrada <input type="text" name="input" /> fuera de un formulario para que no se envíe cuando el usuario presione enter. Quiero saber cuándo el usuario presiona ingresar sin enviar para poder ejecutar JavaScript. Quiero que esto funcione en todos los navegadores principales (no me importa IE) y ser JavaScript válido.javascript keypress enter key

FYI: jQuery es una opción

+0

Posible duplicado: http://stackoverflow.com/questions/979662/how-to-detect-pressing-enter-on-keyboard-using-jquery –

+0

posible duplicado de [Detectar la tecla Intro en un texto campo de entrada] (http://stackoverflow.com/questions/7060750/detect-the-enter-key-in-an-text-input-field) – JJJ

Respuesta

7

No voy a usar jQuery y esto va a trabajar en el IE 9 < también. Con jQuery u otros marcos, puede tener algunas formas más simples de adjuntar detectores de eventos.

var input = document.getElementsByName("input")[0]; 
if (input.addEventListener) 
    input.addEventListener("keypress", function(e) { 
     if (e.keyCode === 13) { 
      // do stuff 
      e.preventDefault(); 
     } 
    }, false); 
else if (input.attachEvent) 
    input.attachEvent("onkeypress", function(e) { 
     if (e.keyCode === 13) { 
      // do stuff 
      return e.returnValue = false; 
     } 
    }); 
5
$("input[name='input']").keypress(function(e) { 
    //13 maps to the enter key 
    if (e.keyCode == 13) { 
     doSomeAwesomeJavascript(); 
    } 
}) 


function doSomeAwestomeJavascript() { 
    //Awesome js happening here. 
}