ie11检测按下Enter键

时间:2015-02-26 12:01:40

标签: javascript jquery

我在asp mvc页面中有以下代码

 $('#regForm').submit(function (event) {
            if (event.keyCode == '13') {
                event.preventDefault();
            }
        });  

目的是防止在按下输入时提交表单。

我们注意到在ie 11中,这不起作用,并且在通过debug进入代码时,event.keycode为null。我一直在研究这个问题,这似乎是一个问题,因为我们在页面上有IE-8兼容性元标记,这意味着event.keyCode(和event.which)为事件返回undefined,并且所以我的表格总是提交。

那么如何重写这个以解决问题?

4 个答案:

答案 0 :(得分:1)

您需要使用按键事件,而不是表单提交

$('#regForm').keypress(function (event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});

答案 1 :(得分:0)

对元素使用 type =“button” 属性 因此 IE 认为按钮是一个简单的按钮,而不是提交按钮。

所以表格不会提交

您还可以从以下网址获取更多详细信息

http://tjvantoll.com/2013/01/01/enter-should-submit-forms-stop-messing-with-that/

答案 2 :(得分:0)

尝试这样的事情,使用window.event:

 $('#regForm').submit(function (e) {
     var keyCode = (window.event) ? e.which : e.keyCode;

                if (keyCode == '13') {
                    e.preventDefault();
                }
            });  

答案 3 :(得分:0)

 $('#regForm').keypress((event) => {
   if (event.key === "Enter") {
     event.preventDefault();
   }
 });