javascript - 仅在按下 Tab 键时调用 onBlur 事件

标签 javascript asp.net

我有一个文本框,只有当按下 Tab 键以从文本框移除焦点时,我才想在该文本框上执行 onBlur 事件。

我如何通过 javascript 执行此操作?

感谢任何帮助..

最佳答案

在浏览器中,当控件获得焦点时按 Tab 键会将其移动到 Tab 顺序中的下一个元素,从而导致当前元素失去焦点并调度模糊事件。

因此您可以只测试是否按下了 tab 键并根据它调用您的函数,例如

<script type="text/javascript">

function showKey(e) {
  return e.which || e.keyCode;
}

</script>
<form>
  <input type="text" onkeydown="this.form.msg.value = showKey(event);">
  <input type="text" name="msg">
</form>

上面显示tab键的值为9,所以你可以这样做:

if ((e.which || e.keyCode) == 9) {
  // tab key was pressed, do stuff
}

请注意,虽然大多数浏览器支持 e.which,但其他浏览器支持 e.keyCode。

编辑

根据您的评论,以下显示当控件失去焦点时,已设置隐藏字段的值:

  <input type="text" onkeydown="this.form.msg.value = showKey(event);
  (event);" onblur="alert(this.form.msg.value);">

关于javascript - 仅在按下 Tab 键时调用 onBlur 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881596/

相关文章:

javascript - Google Drive音频流而不影响下载数量?

c# - 如何在 asp.net 最小 api 中创建 azure 事件网格 webhook?

c# - 您网站上的多个 signalR 连接/集线器

javascript - Meteor JS 中 Atmosphere JS 的模板

javascript - 如何在使用 jQuery 单击一个主体后停止动画

javascript - 如何检查 'this' 是否具有特定属性?

javascript - 当 session 从后端超时时如何从前端注销?

c# - VS 2017 .NET 4.6.2 新增 ASP.NET Core Web Application (.NET Framework) 默认为 x86 平台

asp.net - 禁用按钮在 Mozilla 中看起来未禁用的问题

c# - ASP.NET MVC : Programmatically set HTTP headers on static content