“输入”Keypress提交表单在IE 9/10中不起作用

时间:2013-02-14 05:36:47

标签: javascript jquery

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

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

请帮帮我。

4 个答案:

答案 0 :(得分:8)

注意事项:

  1. 你错过了一个结束括号。
  2. 此外,将选择器更改为window
  3. 使用.on()功能
  4. 使用事件的.which属性。请参阅jQuery documentation
  5. 键码是一个整数 - 删除引号
  6. 添加return false;以阻止事件冒泡到表单(并可能提交表单两次)。请参阅Submitting a form on 'Enter' with jQuery?
  7. 最终代码:

    $(function() {
        $(window).on('keydown', function(event) {
            if(event.which == 13) {
                doPost();
                return false;
            }
        });
    });
    

答案 1 :(得分:1)

$('.inviteClass').keypress(function (e) {
  c = e.which ? e.which : e.keyCode;
  if (c == 13) {
    doPost();
    e.preventDefault();
    return false;    //<---- Add this line
  }
});

答案 2 :(得分:0)

你必须使用jQuery的event.which,也将'13'更改为13(也没有结束括号):

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

答案 3 :(得分:-1)

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

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

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

希望这会对你有所帮助

由于