gpt4 book ai didi

javascript - Keyup 和 blur 同时触发

转载 作者:行者123 更新时间:2023-11-30 10:15:45 25 4
gpt4 key购买 nike

我在表单元素上使用 keyup 和 blur 时遇到了一个有趣的问题。我需要允许 blur 和 keyup 事件从字段冒泡到我可以捕获它们的表单。

$('form').on('focusout submit keyup', function(e) {
console.log($(e.target).attr('id'));
$(e.target).css('background','red');
});

http://jsfiddle.net/Z6Ayx/

问题是,当您跳出某个字段时,会触发 keyup 和 blur。这是因为当您跳出一个字段时,blur 事件会在该字段上触发,但是当您抬起键时您已经在新字段中,因此也会为此触发 keyup 事件。

我一直在努力寻找一个好的解决方案....我想到了一个非常糟糕的解决方案,它涉及向每个字段添加一个 focusin/focus 事件。如果一个字段获得焦点,则在 dom 中找到下一个字段并向其添加一个类以将其标记为“不在第一次按键时验证”。但这似乎是个坏主意

最佳答案

如果你的意思是通过按键盘上的 tab 键跳出,在这种情况下 tab 也是键,所以它会触发 keyup 事件。尝试以下方法来检测标签:

$('form').on('keyup focusout submit', function(e) {
if (e.keyCode == 9) {
//tab was pressed do something else, set a flag to true perhaps
} else {
console.log($(e.target).attr('id'));
$(e.target).css('background','red');
}
});

关于javascript - Keyup 和 blur 同时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23792403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com