2011-10-24 51 views
5

Tôi có trường nhập <input type="text" name="input" /> bên ngoài biểu mẫu để nó không được gửi khi người dùng nhấn enter. Tôi muốn biết khi nào người dùng nhấn enter mà không cần gửi để tôi có thể chạy một số JavaScript. Tôi muốn điều này để làm việc trong tất cả các trình duyệt chính (tôi không quan tâm đến IE mặc dù) và được JavaScript hợp lệ.javascript nhấn phím enter

FYI: jQuery là một lựa chọn

+0

có thể trùng lặp: http://stackoverflow.com/questions/979662/how-to-detect-pressing-enter-on-keyboard-using-jquery –

+0

thể trùng lặp của [Detect phím Enter trong một văn bản trường nhập liệu] (http://stackoverflow.com/questions/7060750/detect-the-enter-key-in-an-text-input-field) – JJJ

Trả lời

7

tôi sẽ không sử dụng jQuery và điều này sẽ làm việc trong IE < 9 quá. Với jQuery hoặc các khung công tác khác, bạn có thể có một số cách đơn giản hơn để đính kèm trình lắng nghe sự kiện.

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. 
} 
Các vấn đề liên quan