繁体   English   中英

按ENTER时提交表单的Javascript

[英]Javascript that submit a form when pressing the ENTER

我有一个按钮,其代码如下所示:

<a href="javascript:document.forms['ContactForm'].submit();" onClick="return ValidateContactForm();" class="button"><span>Submit</span</a>

我需要什么JavaScript代码才能在按键盘上的“Enter”键时提交表单?

你需要使用“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更新的IE KeyCode值在Internet Explorer 8中为“未定义”

只是好奇,你为什么不使用<input type="submit" />元素? 当按下Return而不需要JavaScript时,该HTML元素会自动提交嵌套的表单。 您也可以像使用任何其他元素一样使用CSS来设置它的内容。

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键提交文本(作为单击按钮的替代方法)。

那里有人建议更有效的方法吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM