私は一度に2つのことを行う必要があるページがあります。jQuery:複数のキー押しリスナーを扱う?
- は(キーボード入力として提示)スキャナからの入力のためのすべての時間を聞くと、文字列は右の形式で入力されたときに注意してください。
- 特定のドロップダウンに焦点を当て、イニシャルのセットを入力します。ドロップダウン内の項目の
title
属性に一致するイニシャルのセットが入力されると、そのドロップダウンに注目します。
私はこれらのことを別々に行うことはできますが、一緒に行うことはできません。コード:私は両方を持っている場合は、ユーザーがドロップダウンに焦点を当てている間に
// Listen for input when userlist is in focus.
$("#userlist").keypress(function (e) {
initials += String.fromCharCode(e.which).toUpperCase();
$(this).find("option").filter(function() {
return $(this).attr("title").toUpperCase().indexOf(initials) === 0;
}).first().attr("selected", true);
// uses timer to check for time between keypresses
return false;
});
// Listen for scanner input all the time.
var input = '',
r1 = /^~{1}$/,
r2 = /^~{1}\d+$/,
r3 = /^~{1}\d+\.$/,
r4 = /^~{1}\d+\.\d+$/,
r5 = /^~{1}\d+\.\d+~{1}$/;
$(window).keypress(function(e) {
// when input matches final regex, do something
}
が、その後、ページがスキャナからの入力を「聞く」ことはありません。
ユーザーがドロップダウンに集中している間でも、ページをスキャナの入力に確実に反応させるにはどうすればよいですか?