JavaScript window.onsubmit event.keyCode未定义

JavaScript window.onsubmit event.keyCode未定义,javascript,Javascript,我要从Microsoft Access迁移的客户的员工已经习惯于通过表单字段按Enter到Tab,这是一种奇怪的情况,尽管是一种情况。所以我需要在窗口上preventDefault。在submit事件中,只有事件。keyCode没有定义 window.onsubmit = function(event) { alert('event.keyCode = '+event.keyCode); } 下面是JavaScript在事件参数上返回的方法、对象和属性的列表 window.onsubmit.

我要从Microsoft Access迁移的客户的员工已经习惯于通过表单字段按
Enter
Tab
,这是一种奇怪的情况,尽管是一种情况。所以我需要在
窗口上
preventDefault
。在submit
事件中,只有
事件。keyCode
没有定义

window.onsubmit = function(event)
{
 alert('event.keyCode = '+event.keyCode);
}
下面是JavaScript在
事件
参数上返回的方法、对象和属性的列表

window.onsubmit.event.isTrusted
window.onsubmit.event.stopPropagation
window.onsubmit.event.stopImmediatePropagation
window.onsubmit.event.preventDefault
window.onsubmit.event.initEvent
window.onsubmit.event.getPreventDefault
window.onsubmit.event.type
window.onsubmit.event.target
window.onsubmit.event.currentTarget
window.onsubmit.event.eventPhase
window.onsubmit.event.bubbles
window.onsubmit.event.cancelable
window.onsubmit.event.defaultPrevented
window.onsubmit.event.timeStamp
window.onsubmit.event.originalTarget
window.onsubmit.event.explicitOriginalTarget
window.onsubmit.event.NONE
window.onsubmit.event.CAPTURING_PHASE
window.onsubmit.event.AT_TARGET
window.onsubmit.event.BUBBLING_PHASE
window.onsubmit.event.ALT_MASK
window.onsubmit.event.CONTROL_MASK
window.onsubmit.event.SHIFT_MASK
window.onsubmit.event.META_MASK

除了ondemand JavaScript,我的工作涉及(服务器编译)
index.js
events.js
,所有
window.onevent
处理程序都存储在
events.js
文件中。虽然显然不可能直接阻止
Enter
键提交表单,但仍然可以间接阻止。此外,
keypress
事件似乎会触发
click
事件,可能是出于可访问性的目的。我还包括了一个解决方案,以确定哪个事件首先发生;在触发
按键
事件后的0~20ms之间,每个浏览器都会触发
点击
事件,因此我考虑了这一点,以确保范围为0~50ms。以下是事件触发器和代码之间的浏览器响应时间

铬合金39.0

Firefox31.0ESR:18~20ms

IE 11:2~4ms

歌剧12.1:0毫秒

var option = new function() {this.name = '';}


window.onclick = function(event)
{
 option.clickDate = new Date().getTime();
}


window.onkeypress = function(event)
{
 option.keyCode = event.keyCode;
 option.keyCodeDate = new Date().getTime();
}


window.onsubmit = function(event)
{
 if (option.keyCodeDate && option.clickDate && 
 ((option.clickDate - option.keyCodeDate)>=0 && 
 (option.clickDate - option.keyCodeDate)<51) && 
 option.keyCode==13) {event.preventDefault();}
 {
  event.preventDefault();
 }
}
var option=new function(){this.name='';}
window.onclick=函数(事件)
{
option.clickDate=新日期().getTime();
}
window.onkeypress=功能(事件)
{
option.keyCode=event.keyCode;
option.keyCodeDate=新日期().getTime();
}
window.onsubmit=函数(事件)
{
如果(option.keyCodeDate&&option.clickDate&&
((option.clickDate-option.keyCodeDate)>=0&&

(option.clickDate-option.keyCodeDate)我应该注意,这只是一个临时解决方案,直到我有时间让
Enter
键模拟
选项卡
键,尽管只有在表单中,如果客户仍然需要的话。嗯,你为什么要在窗口上而不是表单上进行提交?@epascarello因为这适用于他们的整个内部网站,而不仅仅是单个网站e表单。但是enter如何在没有表单的情况下提交页面?@epascarello对象
窗口。onsubmit
适用于所有表单提交时,所有事件都有一个
窗口。on
-xyz等效,如
窗口。onclick
。这非常有用,因为在许多情况下(如本Q/a)有必要将两个
窗口
全局事件组合起来,以实现单个
窗口
全局事件无法实现的功能。