【问题标题】:How To Detect when Enter was pressed or submit was pressed [duplicate]如何检测何时按下 Enter 或按下提交 [重复]
【发布时间】: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(...); });
  • 我添加了完整的代码..

标签: php jquery ajax keypress


【解决方案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 代替。谢谢;.)
猜你喜欢
  • 2016-10-22
  • 2011-05-29
  • 1970-01-01
  • 2011-11-13
  • 2012-10-02
  • 2015-05-21
  • 2014-04-04
  • 1970-01-01
  • 2016-05-19
相关资源
最近更新 更多