2012-05-31 4 views
5

Я пытаюсь разработать плагин jQuery, чтобы выполнить действие, когда пользователь вводит определенную ключевую фразу.Комбинация клавиш и клавиш - jQuery

Например, я хочу совместить «HELLO» на клавиатуре.

var controllerKey = []; 
$(window).keyup(function(evt) { 
    var code = evt.keyCode ? evt.keyCode : evt.which; 
    controllerKey.push(code); 
} 
[...] 

Затем я сравниваю мою controllerKey с моей строкой «HELLO» (спасибо str.charCodeAt()) и некоторыми другими вещами, но это не важно. Все отлично работает на этом этапе.

Моя проблема происходит, когда я хочу, чтобы соответствовать «HELLO» (на самом деле, когда строка имела некоторый верхний регистр). Я видел на форумах, что keyup или keydown не имеют никакого значения.

Таким образом, я использую keypress, который управляет им очень хорошо, но keypress не позволяет мне сопоставлять клавиши со стрелками и так один (в Chrome).

Я хочу знать, возможно ли комбинировать нажатия клавиш и клавиш (только когда нажатие клавиши не соответствует событию).

Заранее спасибо.

+0

Они вводят эту фразу во вход? Также вы упоминаете, что ваша проблема заключается в сравнении строк разных случаев, а затем вы спрашиваете о нажатиях клавиш и клавишных? – lucuma

+0

Нет. Это плагин, как «код конами», но с паролем по вашему выбору. Я сравниваю первую строку (ключевую фразу) с пользовательским вводом –

+0

Я думаю, что я слишком стар, чтобы знать, что такое код konomi, но я предоставил вам ответ о объединении обоих событий. – lucuma

ответ

9

Вы можете комбинировать их так:

$(window).on('keyup keypress', function(e) { 
    if (e.type=="keyup") { 

    } else { 
     // it is keypress 
    } 
}); 
+0

Следовательно, вы можете легко сравнить строки с помощью s.toUpperCase() == t.toUpperCase() – lucuma

+0

Ваш ответ мне поможет. Благодарю. (Я не хочу использовать upperCase для comparaison, потому что хочу сохранить эту информацию) –

+0

любая причина для этого не работать на IE? – RMiranda

2

Вы можете использовать скрытый вводи ключевых события для того, чтобы иметь перекрестный случай браузера чувствительно сравнить.

Смежные вопросы