IE和FireFox中的event事件
最近在项目中碰到这样一个问题,表单提交,是用javascript控制的,当用户回车时就代表提交,同事在网上搜了一段代码放进去,在IE下是正常的,但我在用FF查看时,发现提交无效,用Firebug跟踪得到的结果是: window.event has no properties
程序代码
function document.onkeydown(){
var source=event.srcElement.id;
var btnid;
if (event.keyCode == 13 ){
if (source=="txtEmpCode"){
btnid="btnQry"
var btn = document.getElementById(btnid);
if (btn != event.srcElement){
btn.click();
return false;}
}else {
return false;
}
}
}
从获取事件的源对象及ID属性,然后到提交按钮的click事件,看上去是没有问题(项目中用的全是struts标签),但确忽略了FireFox中event与IE中的异同,IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的;网上有资料说可以写成: var eventSource =window.event.srcElement||eventTag.target; 就解决了,但实际上是不行的,FF下既然不能识别window.event,又哪来的window.event.srcElement呢?所以会出现错误: window.event has no properties;
程序代码
function enter_another(eventTag)
{
var events = eventTag||window.event;
var eventSource;
var currentKey = events.charCode||events.keyCode;
if(document.all)
eventSource =window.event.srcElement;
else
eventSource = events.target;
if( currentKey == 13 )
alert("您按了回车键,输入的内容为"+eventSource.value);
}
或直接写成
程序代码
function enter_another(events)
{
var eventSource;
var currentKey = events.charCode||events.keyCode;
if(document.all)
eventSource =window.event.srcElement;
else
eventSource = events.target;
if( currentKey == 13 )
alert("您按了回车键,输入的内容为"+eventSource.value);
}
html代码引用:
程序代码
<input type="text" name="pwd" οnkeydοwn="enter_another(event)" />
修正代码:
程序代码
function enter_down(events){
var eventSource;
var currentKey=events.charCode||events.keyCode;
if(document.all)
eventSource =window.event.srcElement;
else
eventSource = events.target;
var source=eventSource.id;
var btnid;
if (currentKey == 13 ){
if (source=="txtEmpCode"){
btnid="btnQry";
var btn = document.getElementById(btnid);
if (btn != eventSource){
document.getElementById("logform").submit();
return false;}
}else {
return false;
}
}
}
如果var currentKey=events.charCode||events.keyCode;按浏览器分开写的话,会导致得到的currentKey值永远为0;
程序代码
<html:password property="user.passwd" size="15" styleId="txtEmpCode" οnkeydοwn="enter_down(event)" styleClass="login_input" tabindex="2"/>
IE和FireFox中的event事件相关推荐
- javascript中window.event事件用法详解
前两天写程序时因为要用到javascript中的window.event事件,于是就在网上搜了一下,终于找到一篇不错的文章,来与大家分享下: 描述 event代表事件的状态,例如触发event对 ...
- event类型 php,深入解析PHP的Laravel框架中的event事件操作
有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑,比如说系统服务下的授权和事件,这些功能服务的应用场景是什么,其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情,但是当我们在工作中多 ...
- JS中window.event事件使用详解
一.描述 event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如:from ...
- Laravel框架中的event事件操作
有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑,比如说系统服务下的授权和事件,这些功能服务的应用场景是什么,其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情,但是当我们在工作中多 ...
- JS中的event 对象详解
JS中的event 对象详解 JS的event对象 Event属性和方法: 1. type:事件的类型,如onlick中的click: 2. srcElement/target:事件源,就是发生事件的 ...
- 自定event事件之手动触发(一)
创建组件:Y_GLOBAL_EVENT 视图:V_MAIN 窗口:W_MAIN Application:Y_GLOBAL_EVENT 添加上下文 添加UI控件button和textview ...
- vue中 点击事件的写法_vue中的事件:原生事件与自定义事件__Vue.js
模板编译 processAttrs 对于ast attributes处理(v-on/@) 利用onRE与dirRE来捕获事件 这里最重要的就是dynamic的判断,vue中可以用动态参数来命名事件名称 ...
- 为什么JS是单线程?JS中的Event Loop(事件循环)?JS如何实现异步?setimeout?
https://segmentfault.com/a/1190000012806637 https://www.jianshu.com/p/93d756db8c81 首先,请牢记2点: (1) JS是 ...
- node.js中对Event Loop事件循环的理解
javascript是单线程的,所以任务的执行都需要排队,任务分为两种,一种是同步任务,一种是异步任务. 同步任务是进入主线程上排队执行的任务,上一个任务执行完了,下一个任务才会执行. 异步任务是不进 ...
最新文章
- ReactNative v0.55学习笔记
- 微服务SpringCloud—Config Server对称加密
- Linux下TCP最大连接数受限问题
- 一种加速WiFi模块一键配网速度的实现
- 目标跟踪:CamShift算法
- c++开发教程之自定义类型的运算
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑
- 树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...
- uniapp 开发基础环境搭建和配置
- C语言课程设计题库及答案,C语言课程设计题目.docx
- 讲解如何进行SNMP MIB的查看
- Altium designer--DB接口DB9/DB15/DB25/DB37/DB50
- JAVA中使用Apache Batik实现SVG文件转PDF文件导出
- 什么是软件项目管理?
- [情感] 纯情女生给老实木讷男孩的恋爱建议
- 外部多端口映射Https443端口配置
- WIN10下配置Yolov3(VS2019,GPU)+opencv训练自己的数据集(绝对详细,小白型记录)
- 微信公众号怎么清缓存
- Android事件总线设计(一)- EventBus初步学习
- Centos下netstat的使用