阻止用户提交表单
Posted
技术标签:
【中文标题】阻止用户提交表单【英文标题】:prevent user from submitting form 【发布时间】:2012-12-13 18:05:13 【问题描述】:我有我的网站,其中有 电子邮件 pdf 功能
程序是:
当用户输入电子邮件,然后他必须点击提交按钮 点击提交按钮后,表单不会提交,表单会隐藏, 还有另一个隐藏的 div,其中包含 感谢信息,并带有 Ok 按钮。 当用户点击确定按钮时,表单将提交。但现在的问题是:
当用户输入电子邮件时,如果他不小心按了 ENTER,那么表单会被提交而不会显示感谢信息。
我想在用户按下 Enter 键时禁用 ENTER。
【问题讨论】:
你试过了吗:w3schools.com/jsref/event_onkeydown.asp @Robuust 这不是一个好的建议。隐含的eval
,缺乏关注点分离……
Disable ENTER when user Press Enter key
你做了一些 RnD... 见 this & this & this
【参考方案1】:
如果回车键返回 false,请检查哪个键被按下。使用 jQuery 这很容易。
var field = $('.classname');
field.keydown(function(e)
if(e.which==13)
return false;
);
【讨论】:
现在看起来好多了。请注意,on("keydown", ...
也是一种可能性(并且与其他事件更加一致)。
@JanDvorak Thanx 4 小费
@InGodITrust 它正在停止我所有的按键事件。
@Surinder 它应该只停止enter
键
@Surinder 你加载了 jquery 吗?【参考方案2】:
你可以试试这个禁用按键提交
$(function()
$("form").on("keypress", function(e)
if (e.keyCode == 13) return false;
);
);
【讨论】:
【参考方案3】:使用此代码,肯定会为您工作:
var class = $('.classname');
function stopRKey(evt)
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) return false;
class.onkeypress = stopRKey;
【讨论】:
我不喜欢document.onkeypress = ...
;首先,也许您不应该停止 all 输入键。其次,这将覆盖任何以前的事件处理程序。使用addEventListener
或 jQuery(特别是因为它可用)。【参考方案4】:
使用常规的 html 按钮而不是提交按钮。在按钮的 onclick 事件中编写一些 javascript 来显示/隐藏 DIV。谢谢 DIV 上的按钮使其成为提交按钮。
【讨论】:
【参考方案5】:将其放入脚本中:
<script language="JavaScript">
function TriggeredKey(e)
var keycode;
if (window.event) keycode = window.event.keyCode;
if (window.event.keyCode == 13 ) return false;
</script>
【讨论】:
以上是关于阻止用户提交表单的主要内容,如果未能解决你的问题,请参考以下文章