IE和FireFox中的event事件
2010-03-18 14:35
357 查看
最近在项目中碰到这样一个问题,表单提交,是用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" onkeydown="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" onkeydown="enter_down(event)" styleClass="login_input" tabindex="2"/>
程序代码
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" onkeydown="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" onkeydown="enter_down(event)" styleClass="login_input" tabindex="2"/>
相关文章推荐
- IE和firefox浏览器的event事件兼容性汇总
- IE和firefox浏览器的event事件兼容性汇总
- 讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
- JS事件Event元素(兼容IE,Firefox,Chorme)
- JS事件Event元素(兼容IE,Firefox,Chorme)
- 兼容的IE、FireFox的event事件[收藏]
- IE和Firefox下event事件杂谈
- IE和Firefox下event事件杂谈
- JS动态添加移除事件 和 获取Event (兼容IE和Firefox)
- 兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法
- JS事件Event元素(兼容IE,Firefox,Chorme)
- IE和firefox浏览器的event事件兼容性汇总
- 获得事件Event对象,用于兼容IE和FireFox
- 讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
- JS事件Event元素(兼容IE,Firefox,Chorme)
- JS事件Event元素(兼容IE,Firefox,Chorme)
- 同时兼容IE和Firefox的事件(Event)
- 解决 event事件 Firefox "event is not defined" 而IE正常问题
- js event 事件兼容浏览器 ie不需要 event参数 firefox 需要
- 讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别