在之前的一个问题中,我问了同样的问题,但是当用户在文本框中时,我没有阻止提交的答案。
基本上我需要的是能够阻止某人提交表单,除非明确点击提交按钮。
编辑:
基本上这样做的主要原因是这是雇主调查。在这方面的人不会是技术上最精明的,我正在为此做的客户要求这样做。
答案 0 :(得分:6)
$('input').keydown(function(e){
return e.keyCode !== 13;
});
......顺便说一句,我不建议这样做。
答案 1 :(得分:5)
我将表单设置为onsubmit =“return false”并执行此操作
<input type="button" value="Submit" onClick="document.Survey.submit()" style="font-size: 1.25em;">
答案 2 :(得分:1)
我建议使用onsubmit处理程序阻止提交表单(返回false),然后在单击按钮时使用javascript提交表单。
<form action="accion.htm" onsubmit="return false;">
<input type="text" name="pepe" />
<a onclick="this.parentNode.submit();" href="javascript:;">submit</a>
</form>
请注意,这只是一个示例,事件处理程序不应该内联添加,而this.parentNode.Submit()仅在<a>
是表单的直接子项时才有效。
答案 3 :(得分:0)
为什么需要这样做?
通过点击输入提交表单是网络表单上的标准预期行为。
如果您在填写或选择所有选项之前尝试确保他们没有意外提交表单,请使用验证javascript函数检查所有字段中的条目表格。如果缺少某些内容,请弹出一个警告框,告诉他们缺少的内容并返回 false 。 (在表单标记中添加onsubmit ='myValidateForm();'选项)
如果填写了所有必需的数据,则允许使用输入并单击按钮提交表单应该没有问题。
答案 4 :(得分:0)
如果表单有一个类型为text的输入,并且用户点击输入该输入,则表单将按照HTML 4规范提交。防止这种情况发生的最简单方法是添加另一个隐藏文本输入
答案 5 :(得分:0)
我同意这些海报的观点,他们说:“你为什么要这样做?”但我也有人问我这种行为,所以我和你在同一条船上。
之前我使用过Thirster42的解决方案,但这只适用于GET,而不是POST。它似乎也是特定于浏览器的 - 当用户点击进入文本框时,Firefox不会提交表单,但Safari会。 (Firefox 3.5.3,Safari 4.0.3,MacOSX)
我在网上看到的大部分内容都像this:“问:我该怎么做?答:基本上,你没有。”我认为这是因为平台和Web浏览器之间的行为不一致,而适用于Firefox的行为可能不适用于IE或Opera。此外,如果用户在浏览器中禁用了javascript,则无法依赖javascript。
所有这一切,这就是我所做的似乎有用的东西,借鉴here和其他各个地方。在Firefox,Safari和IE 8中测试。用于标题的JavaScript:
function disableEnterKey(e)
{
var key;
if(window.event)
key = window.event.keyCode; // IE
else
key = e.which; // Firefox
if(key == 13)
return false;
else
return true;
}
然后在每个输入字段:
:onKeyDown "return disableEnterKey(event);"
我不喜欢它,但如果它让人开心......