我遇到了一些功能問題。檢測出焦點擊鍵,集中輸入並填充它(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));
}
});
});
這似乎跳過前幾個字母「氏」,然後加倍最後一個按鍵,你結束了「 ss只是一個測試「
可以有人(如果知道)在爲什麼這是發生和在哪裏看。我正在尋找更多的原因而不是解決方案 - 如果我瞭解問題,我可以找出解決方案。
乾杯。
OK,如果輸入的是隱藏的,我只好先取消隱藏什麼?那麼,當元素被隱藏時,焦點似乎被忽略了?是否可以放置某種類型的計時器,並緩存用戶擊鍵,直到元素具有焦點,然後將緩存複製並允許從那時開始的擊鍵追加? – Trent
@Trent是否應該在按鍵,取消隱藏和重點之間有任何有意的延遲?我不確定我是否理解需要定時器。 – digglemister
@Trent爲什麼不在聚焦之前在'keypress'上使用'.show()':https://jsfiddle.net/bjgngayq/5/ – digglemister