2011-10-24 17 views
5

Mam pole wejściowe <input type="text" name="input" /> poza formularzem, aby nie było wysyłane, gdy użytkownik naciśnie przycisk Enter. Chcę wiedzieć, kiedy użytkownik naciśnie klawisz Enter bez wysyłania, aby móc uruchomić JavaScript. Chcę, żeby to działało we wszystkich większych przeglądarkach (nie dbam o IE) i poprawne JavaScript.Klucz języka javascript wprowadź klucz

FYI: jQuery jest opcją

+0

Możliwy duplikat: http://stackoverflow.com/questions/979662/how-to-detect-pressing-enter-on-keyboard-using-jquery –

+0

możliwe duplikat [Detect klawisz Enter w tekście pole wejściowe] (http://stackoverflow.com/questions/7060750/detect-the-enter-key-in-an-text-input-field) – JJJ

Odpowiedz

7

nie będę używać jQuery i to będzie działać w IE < 9 zbyt. Z jQuery lub innymi frameworkami możesz mieć prostsze sposoby dołączania detektorów zdarzeń.

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. 
} 
Powiązane problemy