用jQuery在“ Enter”上提交表单?

JavaScript

猪猪飞云宝儿

2020-03-16

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

我试过了:

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

但这既没有停止清算行为,也没有提交表格。没有与表单相关的操作-可能是问题吗?我可以在动作中添加JavaScript函数吗?

第1702篇《用jQuery在“ Enter”上提交表单?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

9个回答
Sam伽罗 2020.03.16

尝试这个:

var form = document.formname;

if($(form).length > 0)
{
    $(form).keypress(function (e){
        code = e.keyCode ? e.keyCode : e.which;
        if(code.toString() == 13) 
        {
             formsubmit();
        }
    })
}
西门小宇宙 2020.03.16

在HTML代码中:

<form action="POST" onsubmit="ajax_submit();return false;">
    <b>First Name:</b> <input type="text" name="firstname" id="firstname">
    <br>
    <b>Last Name:</b> <input type="text" name="lastname" id="lastname">
    <br>
    <input type="submit" name="send" onclick="ajax_submit();">
</form>

在Js代码中:

function ajax_submit()
{
    $.ajax({
        url: "submit.php",
        type: "POST",
        data: {
            firstname: $("#firstname").val(),
            lastname: $("#lastname").val()
        },
        dataType: "JSON",
        success: function (jsonStr) {
            // another codes when result is success
        }
    });
}
乐神奇 2020.03.16

我现在用

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

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

宝儿阿飞 2020.03.16

只需添加即可轻松实现。您可以简单地创建一个表单,然后将“提交”按钮隐藏起来:

例如:

<form action="submit.php" method="post">
Name : <input type="text" name="test">
<input type="submit" style="display: none;">
</form>
JinJin宝儿 2020.03.16

这是我的代码:

  $("#txtMessage").on( "keypress", function(event) {
    if (event.which == 13 && !event.shiftKey) {
        event.preventDefault();
        $("#frSendMessage").submit();
    }
    });
Sam梅小胖 2020.03.16

另外,为了保持可访问性,您应该使用以下代码来确定您的密钥代码:

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

if (c == 13) ...
Jim理查德泡芙 2020.03.16

返回false以防止继续击键。

十三西里GO 2020.03.16

您是否有任何原因需要挂接并测试Enter键?

您不能简单地添加一个

<input type="submit" /> 

到您的表单,并在按下Enter键时自然提交了吗?如果需要,您甚至可以钩住表单的onsubmit动作并从那里调用验证函数...

您甚至可以将onsubmit用作测试来查看您的表单是否正在提交,但是如果您致电,它将无法正常工作form.submit()

小卤蛋Pro 2020.03.16

正如Jason Cohen所提到的,除返回假外。您可能还必须防止Default

e.preventDefault();

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android