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

时间:2012-07-23 20:13:40

标签: jquery-selectors jquery

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

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

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

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

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

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

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

我听说我可以使用bind或on但不确定在这种情况下如何帮助我。任何帮助将不胜感激 的修改

如果我从提交TO按钮更改按钮类型,则按Enter键时它不会执行任何操作。然后我必须手动点击按钮。如果我保留要提交的类型,则通过传递jquery net来提交我的表单。

5 个答案:

答案 0 :(得分: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.
});

答案 1 :(得分:1)

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

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

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

只是为了添加一些东西,有些人声称你会写两次这样的代码:

$(document).ready(function(){

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

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

});​

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

答案 2 :(得分:0)

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

你试图这样做,如果他们点击输入它没有做任何事情?只有他们真的点击它?

停止默认点击:

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我认为这个问题不是live vs bind。它可能更多地与您只为click事件创建处理程序这一事实有关。