我发现昨天实际发布的关于 SO 的帖子(我现在找不到)说我下面的代码应该可以工作,但它没有——下面的“handleRtnKey(e)”函数从未被调用——为什么?
<input type="text" id="zer" onkeyup="handleRtnKey(e)"/>
// my javascript function -- by the way, I will not be using jquery.
function handleRtnKey(e)
{
alert("Just entered handleRtnKey()");
if (!e)
{
e = window.event; // resolve event instance for IE
}
alert("Just entered handleRtnKey(), e.keyCode is: " + e.keyCode);
alert("Just entered handleRtnKey(), e is: " + e);
if (e.keyCode == '13')
{
alert("handleRtnKey: got the RTN key up event.");
return false;
}
}
没有任何警报触发。
我从昨天发现了一个 SO 帖子,其中包含声称可以正常工作的接近准确的代码(没有我的警报)(对不起,我无法重新找到那个 SO 帖子)。
我需要使用直接的javascript(不是jquery)在我的输入文本框中获取keyup事件的键码——这就是我需要做的,如果是回车键,那么我会采取一些措施,但是现在我无法让上面的代码触发该 handleRtnKey() 函数——为什么?
编辑
Damon 向我介绍了关键字“event”,上面的代码现在可以正常工作——我只是将 html 代码中的参数从“e”重命名为“event”,javascript 处理程序现在可以正常工作——这是唯一的修改我必须制作上面的代码:
// OLD
<input type="text" id="zer" onkeyup="handleRtnKey(e)"/>
// NEW
<input type="text" id="zer" onkeyup="handleRtnKey(event)"/>
注意:javascript 函数 handleRtnKey(e) 未更改,我没有理由更改该函数的签名,它如下所示并且现在可以正常工作:
function handleRtnKey(e)
{
alert("Just entered handleRtnKey()");
if (!e)
{
e = window.event; // resolve event instance for IE
}
alert("Just entered handleRtnKey(), e.keyCode is: " + e.keyCode);
alert("Just entered handleRtnKey(), e is: " + e);
if (e.keyCode == '13')
{
alert("handleRtnKey: got the RTN key up event.");
return false;
}
}
THANKS DAMON.