2011-06-21 28 views
31

Tôi có trường hợp tôi muốn nắm bắt sự kiện nhấn phím đồng thời của phím "shift + tab" bằng cách sử dụng jquery. Trên thực tế như tất cả các bạn biết nó được sử dụng để di chuyển tab theo hướng lạc hậu nhưng đối với tôi trong một kịch bản tha tab đã không làm việc trong bất kỳ hướng nào tức là không về phía trước cũng không lạc hậu. vì vậy tôi đã tìm thấy một hàm jquery để di chuyển tab theo hướng về phía trước như sau: -Ghi lại sự kiện nhấn phím "shift + tab"

$(':input').live('keydown', function(e) {  
    var keyCode = e.keyCode || e.which;  
    if (keyCode == 9) {  
     tindex = parseInt($(this).attr("tabindex")) + 1; 
     if($(":input[tabindex='" + tindex + "']")) 
     { 
      $(":input[tabindex='" + tindex + "']").focus(); 
     } 
    } 
}); 

Bây giờ tôi cũng muốn chuyển tab tah theo hướng ngược lại. Ai đó có thể hướng dẫn tôi làm thế nào tôi có thể đạt được điều này?

+1

Đừng quên để hủy bỏ sự kiện mặc định bằng cách thêm 'return false; 'vào mã. –

Trả lời

60

Bạn có thể sử dụng e.shiftKey để kiểm tra xem phím shift có được tổ chức khi sự kiện được kích hoạt hay không.

Nếu bạn thêm một tuyên bố if để xử lý sự kiện của bạn, kiểm tra xem phím shift được tổ chức, bạn có thể thực hiện hành động khác nhau:

if(keyCode == 9) { 
    if(e.shiftKey) { 
     //Focus previous input 
    } 
    else { 
     //Focus next input 
    } 
} 
+0

+1, để tiết kiệm trong ngày !!! – a5his

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