0

在我的表单中,我有这样的按钮

<button id="mybutton" type="submit"></button>

我正在使用查询提交来提交表单

 $('#mybutton').click(function()
    {
        $('form#myform').submit();
}

它适用于大多数情况,除了当我点击输入时,它仍然通过点击捕获完全提交表单。我将按钮类型更改为按钮

<button id="mybutton" type="button"></button> 

但是当我按Enter键时它什么也没做。

我听说我可以使用 bind 或 on 但不确定在这种情况下这对我有什么帮助。任何帮助将不胜感激 编辑

如果我从提交 TO 按钮更改按钮类型,那么当我按下回车键时它不会做任何事情。然后我必须手动单击按钮。如果我留下要提交的类型,它会通过 jquery net 在输入时提交我的表单。

4

5 回答 5

1

它不会做任何事情,因为它是一个button type.

但是你可以尝试这个来“模拟”它并在按下回车时提交。

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

只是为了补充一点,有些人声称您将编写 2 次这样的代码:

$(document).ready(function(){

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

   $('#mybutton').click(function() {
     $('form#myform').submit();
   });  

});​

不多,但我会尝试做一个简短的方法:-)

于 2012-07-23T20:24:00.857 回答
1

如果您希望在通过提交按钮或在最后一个输入上按 Enter 提交表单时触发它,您应该绑定到表单的提交事件。

表格:

<form id="myform">

... input fields here ...

<button type="submit">Submit</button>

</form>

js:

$("#myform").submit(function(){
    alert("the form submit event happened!");
    // here you can either prevent the form 
    // from submitting and do an ajax request, 
    // or do nothing and let it submit naturally.
});
于 2012-07-23T20:19:17.573 回答
0

我不认为问题是实时与绑定。它可能与您仅为单击事件创建处理程序这一事实有关。

于 2012-07-23T20:23:21.727 回答
0

尝试将其作为输入标签而不是按钮?值得一试

您是否要这样做,所以如果他们按 Enter 键,它不会做任何事情吗?只有当他们真正点击它?

停止默认点击:

.click(function(e){
    e.preventDefault();
});
于 2012-07-23T20:17:50.940 回答
0

要阻止表单在click()事件内提交,请return false;在回调结束时使用。

于 2012-07-23T20:20:05.873 回答