2011-01-24 84 views
1

我不想提交表单$ .ajax({}),当输入键被击中,但点击提交按钮。尝试它与

$('#SubmitButton').click(function(event){ 

if(event.keyCode==13) { 
    //do something 
} 

}); 

我如何得到上述完成。

感谢 让

+0

已经回答了:http://stackoverflow.com/questions/895171/prevent-users-from-submitting-form-b​​y-hitting-enter – mdrg 2011-01-24 15:36:18

回答

3

那么,在点击事件处理程序中,您没有key-charCode,event.which,所以这根本没什么意义。您需要将keypress事件绑定到一个或多个输入文本控件,用户可以在其中键入(并因此触发返回)。

$('input:text').bind('keypress', function(e) { 
    if(e.which === 13) 
     return false; 
}); 

从事件处理程序返回false使两件事情:

  • .preventDefault()被调用的事件对象
  • .stopPropagation(上)被称为事件对象上

应该阻止return冒泡到您的<form>节点,从而阻止提交。所以,在这里打电话给e.stopPropagation()就够了。

1

我会尝试做同样的事情,但与.submit()结合它的形式。然后你可以返回false,或者你需要做的任何事情。

编辑:我要离开这里,因为它很有用。但我很快意识到,不是因为这个问题,因为我认为你不能用这种方法跟踪按键。我只是觉得这一点很醒目,并且在一段时间内没有真正触及过JavaScript。对不起,有任何困惑!