我有一个沼泽标准的登录表单-一个电子邮件文本字段,一个密码字段和一个提交按钮的AIR项目,使用HTML/jQuery。当我在表单上按Enter键时,整个表单的内容消失了,但表单没有提交。有人知道这是Webkit的问题吗(Adobe AIR使用Webkit进行HTML),还是我把事情搞砸了?

我试着:

$('.input').keypress(function (e) {
  if (e.which == 13) {
    $('form#login').submit();
  }
});

但是这既没有停止清除行为,也没有提交表单。没有与表单相关的操作——这可能是问题所在吗?我可以把一个javascript函数的行动?


当前回答

返回false以防止继续击键。

其他回答

我现在用的

$("form").submit(function(event){
...
}

首先,我在提交按钮中添加了一个事件处理程序,它为我产生了一个错误。

有什么理由你必须钩子和测试输入键吗?

你就不能简单地加一个

<input type="submit" /> 

到您的形式,并有它自然提交时,进入是按?如果你想的话,你甚至可以钩子表单的onsubmit动作并从那里调用验证函数……

你甚至可以使用onsubmit作为测试来查看你的表单是否被提交,但是如果你调用form.submit()它将不起作用。

因为可能已经晚了 但是你可以在html中添加以下行:-

<input onkeyup="submitForm(event)" oninput="addTextName(this)" type="text" id="name-val">

并将其添加到js文件中

function submitForm(e) {
var keyCode = e.keyCode ? e.keyCode : e.which;
if (keyCode == 13){
    toggleNextScreen();
}

}

键码13表示回车

不知道这是否有帮助,但您可以尝试模拟单击提交按钮,而不是直接提交表单。我在生产中有以下代码,它可以正常工作:

    $('.input').keypress(function(e) {
        if(e.which == 13) {
            jQuery(this).blur();
            jQuery('#submit').focus().click();
        }
    });

注意:jQuery('#submit').focus()在按下enter键时使按钮动画化。

同样为了保持可访问性,你应该使用这个来确定你的键码:

c = e.which ? e.which : e.keyCode;

if (c == 13) ...