如何在Firefox中检测Enter键?

Arr*_*row 1 html javascript firefox events typescript

我能够成功检测到EnterInternet Explorer 10,Chromium和Opera中的密钥,但不能在Firefox中检测到密钥.

我在这里找到了几页,但它们在Firefox中也不起作用.我做错了什么,这里?

打字稿:

function HandleKeyPress(e) {
    var key = e.keyCode || e.which;

    if (key == 13) {
        // We got this.
        var textbox = <HTMLInputElement>document.getElementById("tbox");
        sayHello(textbox.value);
    }
}
Run Code Online (Sandbox Code Playgroud)

产生的JavaScript(相同):

function HandleKeyPress(e) {
    var key = e.keyCode || e.which;
    if(key == 13) {
        var textbox = document.getElementById("tbox");
        sayHello(textbox.value);
    }
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<input type="text" value="dfgdfgdfg" id="tbox" onkeypress="HandleKeyPress(event)" />
Run Code Online (Sandbox Code Playgroud)

我不能使用任何外部库,我必须在纯JavaScript(或编译为纯JS的语言)中执行此操作.


更新:


我刚安装了Firebug并且在Consolw窗格中我注意到了(刚刚在Enter文本字段上按下jey 之后:

http://localhost:1058/Default.cshtml?someValue=dfgdfgdfgkjkhj


<p>You said: dfgdfgdfgkjkhj</p>
Run Code Online (Sandbox Code Playgroud)

请参阅下面的图片:

在此输入图像描述

请注意,页面本身没有将response段落的值更新为文本框中输入的值,但是,Firebug确实说它已成功发布.

现在,由于此代码适用于所有其他浏览器(IE,Chrome/Canary和<,Opera,Safari),我的问题是,Firefox可能正在检测关键事件,但是之后无法运行的部分是什么?

Fen*_*ton 5

你应该改变onkeypress,以onkeydown作为onkeypress仅在一些实现可打印字符火灾.

您现有的代码应该可以使用onkeydown.