機能に関する問題が少しあります。フォーカスの合ったキーストロークを検出し、入力をフォーカスして入力します(Jquery)
入力にフォーカスがないときは、ユーザーキーの押下を特定の入力にフォーカスし、入力を開始したすべてのテキストを転送し、フォーカスを外すまで入力したものを転送します。その入力。
私が抱えている問題は、Jqueryの遅れによるものと思われますか?あなたは以下のJSFiddle
に「これは単なるテストである」https://jsfiddle.net/bjgngayq/1/
HTML: <input type="text" id="search" />
JS:
$(function() {
$(document).on('keypress', function(e) {
var tag = e.target.tagName.toLowerCase();
if (e.which === 115 && tag != 'input' && tag != 'textarea' && tag != 'select') {
$('#search').focus();
$('#search').val(String.fromCharCode(e.which));
}
});
});
を入力し始める場合、それは「ティ」最初の数文字を飛ばしているようだと、最後のキーの押下を倍増、あなたが "で終わります唯一のテストです "
誰かが(もし知られていれば)に何かを照らすことができますか?これは起こっている場所です。私は解決策よりも理由を探しています。問題が分かっていれば解決策を見つけることができます。
乾杯。
OK、何その入力が隠されて、私は最初にそれを再表示しなければなりませんでしたか?要素は隠されているので、フォーカスは一見無視されますか?いくつかのタイプのタイマーをオンにして、要素にフォーカスがあるまでユーザーのキーストロークをキャッシュし、キャッシュをコピーしてからキーストロークを追加することができますか? – Trent
@Trentキー押し、再表示、フォーカスの間に意図的な遅延があるのでしょうか?私はタイマーの必要性を理解しているかどうか分からない。 – digglemister
@Trentフォーカスする前に 'keypress'に' .show() 'を使ってみるのはどうでしょうか?https://jsfiddle.net/bjgngayq/5/ – digglemister