Почему это работает:
$(window).keydown(function(event){
alert(event.keyCode);
});
но не это:
$('#ajaxSearchText').keydown(function(event){
alert(event.keyCode);
});
Я тестирую Firefox 3. Что интересно, ни один из них не работает в IE7.

Попробуйте использовать
$('#ajaxSearchText').keyup(function(event){
alert(event.keyCode);
});
у меня работает отлично. Также проверьте идентификатор текстового поля
Проверял это в Chrome, IE7 и Firefox 3.0.3. Работает как надо. jQuery версии 1.2.6.
<html>
<head>
<script type = "text/javascript" src = "jquery-1.2.6.js"></script>
<script type = "text/javascript">
$(function()
{
$("#ajaxSearchText").keydown(function(event)
{
alert(event.keyCode);
});
});
</script>
</head>
<body>
<input type = "text" id = "ajaxSearchText"></input>
</body>
</html>
Для всех ваших потребностей в нажатии / нажатии / клавиатуре используйте плагин горячих клавиш jQuery.
Увидел это несколько месяцев назад, и это не перестает впечатлять. Следуйте переходу для демонстрации плагина ... http://code.google.com/p/js-hotkeys/
Он отображает ВСЕ клавиши на клавиатуре, включая комбинации. Надеюсь, это поможет!
Я добавлю комментарий, чтобы помочь всем, кто наткнется на это, как и я. Версия этого плагина, которая работает на jQuery 1.4.2 и более поздних версиях, находится здесь: github.com/jeresig/jquery.hotkeys
В jQuery уже есть все, что нужно для ответа на этот вопрос, плагин особо не поможет.
Извините, ars265, это неправильно. ОБЯЗАТЕЛЬНО расскажите нам, как можно легко использовать собственный jQuery для захвата ctrl + alt + del. И если вы используете коды ascii / key, которые вы уже потеряли ...
Чтобы исправить проблемы в IE6 и IE7, попробуйте следующее ...
$(function()
{
$(document).keydown(function(event){
alert(event.keyCode);
});
});
Прикрепление события к $(document), кажется, здесь волшебно.
Однако ваш первый фрагмент кода действительно должен работать и в IE. Похоже, это связано с ошибкой в jQuery, которая, надеюсь, скоро будет исправлена ...
Вот ссылка на отчет об ошибке в jQuery. https://bugs.jquery.com/ticket/3614
этот отчет об ошибке был закрыт как «не ошибка», потому что ключевые события не поддерживаются в «окне»
Также см. Здесь: stackoverflow.com/questions/1717897/…
Потому что ключевые события не поддерживаются в объекте «окно».
http://www.w3schools.com/jsref/obj_window.asp
Но только в документе:
http://www.w3schools.com/jsref/dom_obj_event.asp
Если и сработало, значит, это была ошибка в jQuery.
$('#searchInput').keydown(function() {
alert('testing');
});
не будет работать. Однако, если вы оберните его функцией:
$(function()
{
$('#searchInput').keydown(function() {
alert('testing');
});
});
это будет работать.
Без этого объявления функции он работает только с такими объектами, как документ и окно.
Предложение: приведите минимально возможный автономный пример, иллюстрирующий вашу проблему.