很抱歉问这样基本的问题。我正在学习 Javascripts 和 Jquery。
我有一个弹出窗口,其中包含 3 个输入文件,例如 ETD、ETA 和持续时间。我正在尝试从 ETD 和 ETA 计算 focusout 的持续时间,并且将有一个 AjaxCall,我们在其中进行计算和其他工作。问题是每当按下 Tab 键(从 ETD 或 ETA 聚焦)时,焦点都会移出弹出窗口并移至主窗口。
我试图将焦点集中在这些输入字段上,以确保 ajax 调用成功。我正在尝试使用标志来实现这一点,例如,如果在 ETD 上发生了焦点,那么 ETDFlag 将为真,并且在 ajax 调用的“onsuccess”上检查此标志,所以如果 ETDFlag 为真,则将重点放在 ETA 上等等。但问题是,即使通过点击 out of fields 将焦点移出该字段,焦点也会转到下一个字段。所以只需要在 TabKey 按下时设置标志。
下面是示例代码:
$("#ETD").focusout( function (event) {
var keyCode=event.keyCode || event.which;
if(keyCode == 9){
ETD= true;
ETA= false;
}
calculateDuration();
当我尝试警报(事件)时,我没有得到事件对象;输出是 [object Object]。
但类似的东西
alert(e.target.id) // 将显示字段的 id。例如。东部时间
请帮助并告诉我出了什么问题。我是 Javascripts 新手,所以无法理解。
”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”
编辑以获得更多说明
目标是在用户使用 Tab 按钮时转到下一个输入。如前所述,当前行为是在按下选项卡(焦点输出)后,将发生一个 ajax 调用来计算持续时间字段值,并且焦点将移出弹出窗口到主窗口!所以拥有事件对象的主要目的是获取tab按钮的keycode:
var keyCode=event.keyCode || event.which;
If(keyCode==9) //tab key code
{Then make some flag true}
但是在按下制表键时它永远不会进入 if 条件!!!
"""""""""""""""""""
编辑以获取更多说明 2
var keyCode=event.keyCode || event.which;
我尝试在 keyup 事件上使用上面的代码,“ keyCode ”能够捕获几乎所有键,除了Tab 键!