之前我曾经问过同样的问题,但是得到的答案不能防止用户在文本框中提交表单。
所以基本上我需要的是能够阻止用户提交表单,除非他们明确地点击了提交按钮。
编辑:
基本上这样做的主要原因是这是一项雇主调查。参与者不会是最技术娴熟的人,我的客户已经要求这样做。
之前我曾经问过同样的问题,但是得到的答案不能防止用户在文本框中提交表单。
所以基本上我需要的是能够阻止用户提交表单,除非他们明确地点击了提交按钮。
编辑:
基本上这样做的主要原因是这是一项雇主调查。参与者不会是最技术娴熟的人,我的客户已经要求这样做。
$('input').keydown(function(e){
return e.keyCode !== 13;
});
顺便说一下,我不建议这样做。
在IT技术领域,不建议采取这种方式。<input type="button" value="Submit" onClick="document.Survey.submit()" style="font-size: 1.25em;">
我建议使用一个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>
<a>
是表单的直接子元素时,this.parentNode.Submit()
才有效。从哲学上讲,我同意那些说“你为什么要这样做”的人的观点。但我也有人向我询问此行为,所以我和你一样。
我以前用过Thirster42的方案,但只适用于GET,不适用于POST。它似乎还因浏览器而异--当用户在文本框中按回车键时,Firefox不会提交表单,但是Safari会。(Firefox 3.5.3,Safari 4.0.3,MacOSX)
我在网上看到的大部分都像this: “问:我该怎么办?答:基本上,你不应该。”我认为这是因为该行为在平台和Web浏览器之间不一致,并且对Firefox有效的方法可能对IE或Opera无效。另外,如果用户在浏览器中禁用了javascript,则不能依赖javascript。
所有这些都说了,这是我从这里和其他地方借鉴的,似乎可以工作。在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);"
我不太喜欢它,但如果它能让人们开心...
为什么需要这样做?
在Web表单上通过按下回车来提交表单是标准的预期行为。
如果您想确保他们在填写或选择所有选项之前不会意外地提交表单,请使用验证JavaScript函数,检查表单上所有字段中的条目。 如果有缺失的内容,请弹出警告框告诉他们缺少了什么,然后返回false。(将onsubmit='myValidateForm();'选项添加到表单标签中)
如果填充了所有必需的数据,则可以使用回车以及单击按钮提交表单,不应该存在问题。