2013-06-17 6 views
1

Мне нужно записать обычный текст с помощью строчных и строчных букв, но я также хочу подбирать коды клавиш для alt, ctrl, esc и т. Д. Я попытался запустить две функции jquery .keypress и .keydown, и принимают только специальные клавиши из .keydown, но когда они вместе, они дают только результат. Я использую Chrome, но мне также нужна поддержка как можно большего числа других браузеров.используя .keypress и .keydown рядом друг с другом

+2

'если (event.altKey && event.ctrlKey) {...}' – jantimon

ответ

1

Вы можете получить состояние специальных клавиш с помощью jQuery.Event, который является первым аргументом функции обратного вызова от слушателя:

http://jsbin.com/epuqig/2/embed?live

jQuery(function($) { 
    $('input').on('keydown', function(event) { 
     // event.shiftKey 
     // event.ctrlKey 
     // Also to fetch the keyCode use: 
     // event.which 
     if (event.which == 8 && event.shiftKey) { 
      // Backspace and shift key is pressed 
     } 
    }); 
}); 

Вы можете пойти ваниль, если вы этого не сделаете уход за старыми браузерами:

window.addEventListener('load', function() { 
    var inputs = document.querySelectorAll('input'); 
    [].forEach.call(inputs, function(input) { 
     input.addEventListener('keydown', keydownHandler, false); 
    }); 
}, false); 

function keydownHandler(event) { 
    if (event.keyCode == 8 && event.shiftKey) { 
     // Backspace and shift key is pressed! 
    } 
} 

Как вы можете видеть это почти те же фрагменты кода, но второй один хочет работать в < IE9

+0

нет необходимости в JQuery, это родной JS. – Christoph

+0

@Christoph OP задал jQuery в качестве опции. – andlrc

+0

Не обижайтесь, я просто хотел сказать, что это родной. Многие люди, к сожалению, больше не могут отличить сегодня. – Christoph

0
$(document).ready(function() { 
    $(document).keydown(function (e) { 
     var code = e.keyCode; 
     if(e.altKey) // you can also use - e.ctrlKey , e.shiftKey 
      // alt key 
    }).keyup(function (e) { 
     var code = e.keyCode; 
    }); 
}); 
Смежные вопросы