HTML 表单 - 当我点击 Enter 时,它会刷新页面! [复制]
Posted
技术标签:
【中文标题】HTML 表单 - 当我点击 Enter 时,它会刷新页面! [复制]【英文标题】:HTML form - when I hit enter it refreshes page! [duplicate] 【发布时间】:2011-01-14 00:01:04 【问题描述】:当您按下键盘上的“Enter”键时,有没有办法让表单不刷新或调用任何内容?
非常感谢!!!
我发现这段代码可以阻止 Enter 工作,但它在 IE 中不起作用:(
$(document).ready(function()
$(window).keydown(function(event)
if(event.keyCode == 13)
event.preventDefault();
return false;
);
【问题讨论】:
【参考方案1】:如果您使用的是 AngularJS,您可以原生地通过“输入”键阻止表单提交。
根据 html 规范和 AngularJS,你需要检查这个列表:
-
表单必须有 NO
action=...
属性(AngularJS 会自动处理)
表单必须有 NO button
和 type="submit"
属性
所以,如果您没有操作属性和提交按钮,那么您的表单不应该通过按回车键来提交。
另外,跨浏览器的keyCode是这样的:
var code = (e.keyCode ? e.keyCode : e.which);
【讨论】:
我知道这不是 AngularJS 的问题,但这对我来说是一种享受(使用 AngularJS)。【参考方案2】:在表单标签上添加 onSubmit 属性。
<form onSubmit="return false;">
【讨论】:
最简单最好的解决方案,imo【参考方案3】:禁用submit
事件不是一个好主意。现在您可以从不通过按下相应按钮来提交表单。
相当挂钩keypress
事件:
<form onkeypress="return event.keyCode != 13">
或 jQuery 风格:
$('form').keypress(function(event)
return event.keyCode != 13;
);
13
是Enter键的keyCode。这适用于从 IE6 到所有当前浏览器的所有浏览器。你只需要考虑 textareas 。然后你可以考虑这个结构:
$(':input:not(textarea)').keypress(function(event)
return event.keyCode != 13;
);
【讨论】:
【参考方案4】:试试这个:
$(function()
$("form").submit(function() return false; );
);
【讨论】:
以上是关于HTML 表单 - 当我点击 Enter 时,它会刷新页面! [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用Javascript将文本从表单放入表中,当我单击按钮时它会消失