我有一个按钮,其代码如下所示:
<a href="javascript:document.forms['ContactForm'].submit();" onClick="return ValidateContactForm();" class="button"><span>Submit</span</a>
我需要哪些JavaScript代码才能在按键盘上的“Enter”键时提交表单?
答案 0 :(得分:1)
您需要使用“onkeypress”事件。取决于您在收听Enter键时希望Focus的位置..
document.onkeypress = function keypressed(e){
var keyCode = (window.event) ? e.which : e.keyCode;
if (keyCode == 13) {
if(ValidateContactForm())
document.forms['ContactForm'].submit();
}
}
(针对每个JavaScript KeyCode Values are "undefined" in Internet Explorer 8的IE更新)
答案 1 :(得分:1)
好奇,你为什么不使用<input type="submit" />
元素?当按下Return而不需要JavaScript时,该HTML元素会自动提交嵌套的表单。您也可以像使用任何其他元素一样使用CSS来设置它的内容。
答案 2 :(得分:0)
Re: ltiong_sh 的建议 以上版本不适用于Internet Explorer,至少IE8及以下版本 对于IE8及更低版本,以下内容将起作用:
document.onkeypress = function keypressed(){
if (window.event.keyCode == 13) {
// Sumbit code
}
}
但是,这不重要。重要的是这种方法非常糟糕:
1)当您在输入文本区域内或每当您在页面中时(根据使用的方法),每个按键都会被监控! (这可能会窃取CPU时间)
2)使用相同的URL按Enter(或其他热键)发出新页面!也就是说,每次按下Enter键时,页面都会在历史记录中堆叠起来!!!
3)按Enter键后,输入区域内的文本恢复为默认值(原始文本)!!
4)提交的文本被添加到地址区域中的URL,如?
到目前为止,我还没有找到任何方法来克服这些缺点...(这是我今天第一次搜索如何按Enter键提交文本(作为单击按钮的替代方法)。
是否有人建议采用更有效的方法?