我有一个文本框,只有当按下 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/