按enter键提交Javascript表单在保存密码的Firefox中不起作用

按enter键提交Javascript表单在保存密码的Firefox中不起作用,javascript,jquery,firefox,Javascript,Jquery,Firefox,我有一个简单的登录表单,它使用一些简单的Javascript(JQuery)捕获用户名/密码,以便在用户在这些字段中按enter键时提交表单。以下是相关的代码位: 表格: <form id="loginForm"> <input type="text" id="username" /> <input type="password" id="password" /> etc... </form> 我遇到的问题是,当用户打开该

我有一个简单的登录表单,它使用一些简单的Javascript(JQuery)捕获用户名/密码,以便在用户在这些字段中按enter键时提交表单。以下是相关的代码位:

表格:

<form id="loginForm">
    <input type="text" id="username" />
    <input type="password" id="password" />
    etc...
</form>
我遇到的问题是,当用户打开该功能让浏览器保存密码时,Firefox的问题

如果我在用户名文本字段中键入用户名的前几个字母,Firefox将向我显示它记住的选项。如果我按下向下箭头突出显示用户名,然后按enter键选择它,那么我的Javascript将在Firefox自动完成密码字段之前启动。这将导致提交一个空白密码

在Chrome中使用相同的“保存密码”功能时,它可以正常工作


关于如何解决这个问题有什么想法吗?

将keypress改为keyup,一切都很完美

$('#username, #password').bind('keyup', function(e) {
    if (e.which == 13) {
        $('#loginForm').submit();
        e.preventDefault();
    }
});

谢谢CoolEsh的提示你检查焦点了吗?是密码、用户名输入还是提交按钮(如果您添加了)?重点是用户名字段,因为我是在这里输入的。我键入用户名的前几个字母,然后选择Firefox在其保存的用户名/密码列表中显示的第一个选项。当我按enter键选择Javascript启动并提交表单的第一个选项时,Firefox才可以填写密码字段。为什么需要绑定该事件侦听器?通常情况下,在密码字段中按enter键只需提交表单…Boris,一些浏览器可能会对此很挑剔,您通常需要一个提交按钮才能使其正常工作(我的表单有一个链接,用于提交表单,该链接已设为带有图像的按钮样式)。另外,如果用户也在用户名字段中点击enter,我希望表单提交。
$('#username, #password').bind('keyup', function(e) {
    if (e.which == 13) {
        $('#loginForm').submit();
        e.preventDefault();
    }
});