簡體   English   中英

Javascript keyup / onkeyup錯誤的元素

[英]Javascript keyup / onkeyup wrong element

有人有同樣的問題嗎? 當快速鍵入文本框並跳到下一個文本框(通過按“tab”鍵)時,將從錯誤的元素注冊keyup事件。

行為:

  1. 前提條件:我們有兩個文本框; 用javascript注冊到key-up事件
  2. 操作:在文本框中鍵入quicky並使用“tab”鍵切換到下一個文本框。
  3. 結束情況 :所有按下的字符都在第一個文本框中呈現,第二個文本框被選中(但為空); Javascript keyup事件從最后一個元素注冊最后一個x(取決於類型速度)。(意外)

預期的最終情況:
- 所有按下的字符都在第一個文本框中呈現,第二個文本框被選中(但為空); Javascript:只從最后一個元素注冊最后一個('tab'鍵盤事件)。

(這個問題在普通的javascript中,但也傳播到jQuery onkeyup事件)

在瀏覽器中測試: - Chrome(版本49.0.2623.87 m(64位)) - FireFox(45.0.1) - Edge

JSFiddle: https ://jsfiddle.net/xk09542f/4/

JS:

document.getElementById('inp1').onkeyup = function(e) {
     console.log(this.id + ' ' + e.which);
}
document.getElementById('inp2').onkeyup = function(e) {
  console.log(this.id + ' ' + e.which);
}

HTML:

<input id="inp1" type="text">
<input id="inp2" type="text">

輸出:見控制台;

實際上你在控制台中看到的是預期的結果,因為:當你按Tab鍵時它的句柄2事件首先是一個keyDown(這會將你移動到第二個textField),現在你在第二個textField中你仍然在keyDown事件下,因此,當您釋放Tab鍵時,它會處理您的keyUp事件,而最后一個事件發生在第二個textField上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM