JavaScript window.onsubmit event.keyCode未定义
我要从Microsoft Access迁移的客户的员工已经习惯于通过表单字段按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.
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)有必要将两个窗口
全局事件组合起来,以实现单个窗口
全局事件无法实现的功能。