0
$(function(){
    $('.inviteClass').keypress(function() {
        if(event.keyCode=='13') {
            doPost();
        }
});

在这里,我有一个小要求。按键盘 Enter 提交表单,它在 FireFox 和 Chrome 以及 IE 7 和 8 中工作正常,但在 IE9 和 IE 10 中不工作。

请帮我。

4

4 回答 4

8

注意事项:

  1. 您缺少右括号。
  2. 另外,将选择器更改为window
  3. 使用.on()功能
  4. 使用.which事件的属性。请参阅 jQuery文档
  5. 键码是一个整数 - 去掉引号
  6. 添加一个return false;以阻止事件冒泡到表单(并可能提交表单两次)。请参阅使用 jQuery 在“输入”上提交表单?

最终代码:

$(function() {
    $(window).on('keydown', function(event) {
        if(event.which == 13) {
            doPost();
            return false;
        }
    });
});
于 2013-02-14T06:35:03.737 回答
1

尝试

$('.inviteClass').keypress(function (e) {
  c = e.which ? e.which : e.keyCode;
  if (c == 13) {
    doPost();
    e.preventDefault();
    return false;    //<---- Add this line
  }
});
于 2013-02-14T05:42:02.920 回答
0

您必须使用 jQuery 的 event.which,也将 '13' 更改为 13(也缺少右括号):

$(function(){
    $('.inviteClass').keypress(function(event) {
        if(event.which == 13) {
            doPost();
        }
    });
});
于 2013-02-14T05:42:14.380 回答
-1

请尝试使用 keydown 事件并像这样在函数中传递事件对象

$(function(){$('.inviteClass').keydown(function(event){if(event.keyCode=='13'){doPost();}});

或者

$(function(){$('.inviteClass').keypress(function(event){if(event.keyCode=='13'){doPost();}});

希望对你有帮助

谢谢

于 2013-02-14T05:40:26.027 回答