2011-07-01 40 views
22
<input type="button" id="save_post" class="button" value="Post" style="cursor:pointer;"/> 

Làm cách nào để gắn khóa nhập trên bàn phím người với nút cụ thể này trên trang? Nó không có trong một hình thức, và cũng không làm tôi muốn nó được.Liên kết nhập khóa vào nút cụ thể trên trang

Cảm ơn!

+0

Xem thêm http://stackoverflow.com/questions/1402698/binding-arrow-keys-in-js-jquery –

+0

Lỗ hổng đáng kể với tất cả các phương pháp được trình bày cho đến nay: Hộp văn bản cũng sẽ gửi khi nhập, thay vì cho phép cho các dòng mới. – Kaji

Trả lời

33

này sẽ bấm nút không phân biệt nơi "Enter" xảy ra trên trang:

$(document).keypress(function(e){ 
    if (e.which == 13){ 
     $("#save_post").click(); 
    } 
}); 
10

sử dụng jQuery:

$('body').on('keypress', 'input', function(args) { 
    if (args.keyCode == 13) { 
     $("#save_post").click(); 
     return false; 
    } 
}); 

Hoặc để ràng buộc đầu vào cụ thể để các nút khác nhau mà bạn có thể sử dụng bộ chọn

$('body').on('keypress', '#MyInputId', function(args) { 
    if (args.keyCode == 13) { 
     $('#MyButtonId').click(); 
     return false; 
    } 
}); 
+0

Tại sao chúng ta cần 'trả lại false'? Biểu mẫu sẽ không gửi. – Mai

+1

Xin chào @Mai, trong câu hỏi, nó đặc biệt hỏi "Nó không có trong một hình thức, và cũng không làm tôi muốn nó được"! – Parham

7

Nếu bạn muốn sử dụng javascript tinh khiết:

document.onkeydown = function (e) { 
    e = e || window.event; 
    switch (e.which || e.keyCode) { 
     case 13 : //Your Code Here (13 is ascii code for 'ENTER') 
      break; 
    } 
} 
+0

Tùy chọn JavaScript thuần túy luôn là tiền thưởng –

+0

window.onkeydown hoặc document.onkeydown? đoán nó không quan trọng trong trường hợp này –

Các vấn đề liên quan