为什么这个自定义提交不起作用?

时间:2012-04-29 19:24:18

标签: javascript jquery html submit keyboard-events

我有这个提交登录表单的按钮:

<input class="btn btn-large btn-success" id="login-button" onclick="handleLogin()" name="submit" type="submit" value="Login"/>

我有这个功能,当用户按下enter键时我想用它来自定义提交:

$(document).ready(function () {

     $(document).keyup(function(event) { 

        if(event.which == 13) {

            $('#login-button').click();
            //event.preventDefault();
            //return false;
        }
    });
});

然而,这根本不起作用。我已尝试使用和不使用代码的注释部分。 请注意,单击时提交表单并且form元素中没有输入字段。我使用handleLogin()使用AJAX提交。 所以我真正想要的是点击这个#login-button你们看到了问题吗?提前谢谢。

更新:我正在使用Chrome BETA频道。

重要!:我想按下ENTER时点击#login-button。没有那么多。我已经知道如何提交表格。

2 个答案:

答案 0 :(得分:4)

demo fiddle

$(document).ready(function () {    
     $(document).keyup(function(event) {  
        if(event.keyCode === 13) {

            $('#yourForm').submit(); // submit form
             alert('yeah!')

            event.preventDefault();
            return false;
        }          
     });     
});

使用:keyCode代替which
使用:.submit()与表单的nameid一起使用。 http://api.jquery.com/submit/
您错过了});

答案 1 :(得分:1)

这是处理提交表单事件的更好方法:

<form id="form">
...
//input texts ...
...
<input type="submit" value="Send"/>
</form>

然后,jquery(您不需要知道按下的键,只需要通过提交按钮或回车键调度的提交事件):

$("#form").submit(function(e){
e.preventDefault();
//your logic ...
});