如何检测何时按下 Enter 或按下提交 [重复]

Posted

技术标签:

【中文标题】如何检测何时按下 Enter 或按下提交 [重复]【英文标题】:How To Detect when Enter was pressed or submit was pressed [duplicate] 【发布时间】:2013-05-20 19:04:23 【问题描述】:

我正在尝试创建一个登录表单。问题是它只会在有人点击提交按钮时执行操作,如果用户点击了输入,我会尝试添加功能

字段然后按回车键(就像没有 jquery 和普通 php 一样)它还将执行相同的代码来检查错误或转到我正在测试它的可验证帖子。

这里是完整的 JQuery 代码,用于 PHP $_POST 页面待办事项测试..

$(document).ready(function() 


$('#submit').click(function() 

      var user_login = $('#user_login').val();
      var password = $('#pass_login').val();


$.post('ajax/check.php', user_login: user_login, password: password, function(data)  
$('#content').html(data);

 );


);

【问题讨论】:

$("#your_form_ID").submit(function() $.ajax(...); ); 我添加了完整的代码.. 【参考方案1】:

您可以设置多个事件处理程序并从这些事件处理程序调用验证函数。您也可以将以下代码组合到一个事件处理程序回调中。

var form = document.form['my-form'];

/* submit form via return-key */
form.on( 'keypress', 'input,button', function( event ) 
    if( event.keyCode == 13 ) 
        event.preventDefault();

        submitForm( form );
    
 );

/* submit form via button click */
form.on( 'click', '[type=submit]', function( event ) 
    event.preventDefault();

    submitForm( form );
 );

/* disable default form submit */
form.on( 'submit', function( event ) 
    event.preventDefault();
    throw new Error( 'This form can\'t be submitted using submit(), we\'re using AJAX here.' );
 );

function submitForm( form )

    /* validation code here */
    /* … */

    /* then send AJAX request */
    /* … */

【讨论】:

我可以试试这似乎是最好的主意。您的代码似乎不起作用,我在您的代码中配置什么以使其与我的输入字段一起工作? 好的,我接受了你的建议,做两个事件处理程序,到目前为止,它的工作效果很好,唯一的问题是当用户按住 enter 时,他们可以向单个文件发送高流量,这可能会滞后DNS 服务器。如果我有任何问题,我会在这里回复。更新:没关系用 keyup 而不是 keydown 代替。谢谢;.)

以上是关于如何检测何时按下 Enter 或按下提交 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

javascript ReactJS:当用户停止输入时输入fire onChange(或按下Enter键)

javascript ReactJS:当用户停止输入时输入fire onChange(或按下Enter键)

检测用户何时在Java中按下回车

如何检测是不是在JS中按下回车键[重复]

在 Bootstrap 模式窗口中单击 Enter 并点击提交按钮时提交表单数据

如何判断何时在 TextBox 中按下回车键?