Javascript keyup/on-keyup错误的元素
Javascript keyup / onkeyup wrong element
有人有同样的问题吗?当在文本框中快速键入并跳到下一个文本框时(通过按下"tab"键),keyup事件从错误的元素注册。
行为:
- 前提条件:我们有两个文本框;将javascript注册到key-up事件
- 操作:在文本框中快速键入,然后用"tab"键切换到下一个文本框
- 结束情况:所有按下的字符都显示在第一个文本框中,第二个文本框被选中(但为空);Javascript keyup事件注册最后一个元素的最后一个x(取决于类型速度)。(出乎意料)
预期结束情况:
-所有按下的字符都显示在第一个文本框中,第二个文本框被选中(但为空);Javascript:只有最后一个('tab'keyup事件)从最后一个元素注册。
(这个问题在纯javascript中,但也会传播到jQuery onkeyup事件)
在浏览器中测试:-Chrome(版本49.0.2623.87 m(64位))-火狐(45.0.1)-边缘
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),现在你在第二个text Field,你仍然在keyDown事件下,所以当你释放tab键时它的句柄是你的keyUp事件,最后一个事件发生在第二个子text Field上。
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- d3在数据更新时错误地附加了dom元素
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- D3-更新时元素数量正确,但值错误
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- Angular2-*ngFor和*ngIf在同一个元素上产生错误
- 错误:ReCAPTCHA占位符元素必须为空
- React.js错误;相邻的JSX元素必须被封装在一个封闭标记“中;
- ReactJS - 元素类型无效错误
- 类名的子元素错误
- jQuery 验证 - 调用某些元素的 .valid() 方法不会清除错误
- IE7/8中的jQuery动态元素错误
- PHP或Javascript:找不到元素错误
- Scrollable在angular2中不是已知的元素错误
- 从javascript编辑html输入元素错误
- React-Bootstrap弹出窗口上的非react元素-错误的位置和不变的错误
- 在firebug PHP ajax中没有发现任何元素错误
- Window.getComputedStyle 在 Firefox 中没有实现接口元素错误