jquery应该使用bind还是live,或者有其他方法可以做到这一点



在我的表单中,我有一个类似的按钮

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

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

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

它对大多数人都有效,而且当我点击回车时,它仍然完全通过点击来提交表单。我将按钮类型更改为按钮

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

但当我按下回车键时,它什么也没做。

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

如果我将按钮类型从submit TO按钮更改为submit TO,那么当我按下回车键时,它不会执行任何操作。那么我必须手动点击按钮。如果我让类型提交,它会在输入时通过jquery net提交我的表单。

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

但您可以尝试这样做来"模拟"它,并在按enter键时提交。

$(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();
   });  
});​

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

如果希望在表单提交时通过提交按钮或在最后一次输入时按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.
});

是否将其作为输入标记而非按钮?值得一试

你是不是想这样做,如果他们点击回车键,它就什么都没做?只有当他们真的点击了它?

要停止默认点击:

.click(function(e){
    e.preventDefault();
});

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

我不认为问题是live vs bind。这可能更多的是因为您只为单击事件创建了一个处理程序。

相关内容

最新更新