2010-02-07 105 views
17

有没有一种方法,使一个形式不刷新,或致电什么,当你点击“进入”键盘上的键?HTML表单 - 当我击进入它刷新页面!

非常感谢你!

我找到了防止工作中输入验证码,但它不能在IE工作:(

$(document).ready(function() { 
    $(window).keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); 
     return false; 
    } 
    }); 
} 

回答

32

试试这个:

$(function() { 
    $("form").submit(function() { return false; }); 
}); 
16

禁用submit事件不是一个好想法。现在你可以从来没有提交表单按下按钮,它是为。

相反挂钩的keypress事件:

<form onkeypress="return event.keyCode != 13"> 

或jQuery中味:

$('form').keypress(function(event) { 
    return event.keyCode != 13; 
}); 

13键代码输入键。这适用于从IE6到所有当前浏览器的所有浏览器。你只需要考虑textareas。您可以考虑使用此构造:

$(':input:not(textarea)').keypress(function(event) { 
    return event.keyCode != 13; 
}); 
10

在窗体的标记上添加提交属性。

<form onSubmit="return false;"> 
+0

最简单的和最佳的解决方案,国际海事组织 – 2017-03-02 14:50:29

2

您可以通过“ENTER”键本身如果你正在使用AngularJS防止表单提交。

根据HTML规范和AngularJS,你需要检查这个列表:

  1. 表格必须有NOaction=...属性(AngularJS自动处理它)
  2. 表格必须有NObuttontype="submit"属性

所以,如果你没有action属性和提交按钮后,日您的表单不应通过点击回车键提交。

另外,跨浏览器的键代码是这样的:

var code = (e.keyCode ? e.keyCode : e.which); 
+0

我知道这是不是一个AngularJS的问题,但这个(使用AngularJS)工作一种享受我。 – 2016-02-04 12:38:33