刚才测试在ff下使用preventDefault和stopPropagation都没办法阻止事件的发生,怎么搞不知道了。。不过改了一个变通的方法,就是还原原来的选项,有点跳动<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<script language="JavaScript">
<!--
var selIndex=-1;
var isIE = (document.all) ? true : false;
window.onload=function(){
var osel= document.getElementById('osel')
osel.onkeydown = function(e){
e = e || window.event;
if(e.keyCode == 38 || e.keyCode == 40) isIE?e.returnValue = false:selIndex=this.selectedIndex;
}
if(!isIE)osel.onkeyup=function(e){
e = e || window.event;
if((e.keyCode == 38 || e.keyCode == 40)&&selIndex!=-1){
this.selectedIndex=selIndex;
selIndex=-1;
}
}
}
//-->
</script>
</head><body>
<select id="osel" size="5" style="width:300px;height:200px">
<option value="0">中国</option>
<option value="1">美国</option>
<option value="2">英国</option><option value="3">德国</option>
</select>
</body>
</html>
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<script language="JavaScript">
<!--
var selIndex=-1;
var isIE = (document.all) ? true : false;
window.onload=function(){
var osel= document.getElementById('osel')
osel.onkeydown = function(e){
e = e || window.event;
if(e.keyCode == 38 || e.keyCode == 40) isIE?e.returnValue = false:selIndex=this.selectedIndex;
}
if(!isIE)osel.onkeyup=function(e){
e = e || window.event;
if((e.keyCode == 38 || e.keyCode == 40)&&selIndex!=-1){
this.selectedIndex=selIndex;
selIndex=-1;
}
}
}
//-->
</script>
</head><body>
<select id="osel" size="5" style="width:300px;height:200px">
<option value="0">中国</option>
<option value="1">美国</option>
<option value="2">英国</option><option value="3">德国</option>
</select>
</body>
</html>
解决方案 »
- 如何在asp.net网页中自做讯播播放器来看电影
- 点击日历的某一天,然后就弹出一个层,怎么写?
- javascript动态事件传值出问题请高手帮一下感谢
- 正则 如何确定 没有某字符串
- 【再问】checkbox的取值
- 急,请问如何用js,post数据,谢谢
- 邊距問題
- "WEB 开发中经常遇到的问题列表, 能够解决之则JS小成了"怎么打不开
- showModalDialog在ie5下不能返回值,ie6就没问题??
- 在javascript中,俩个数相除,怎么样使它的值小数点后只有俩位?
- 为什么在a.com中的页面中iframe另一个b.com中的页面,这个页面中设的cookies会无效?
- 求:一个js的日历控件(兼容与IE和FireFox)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<script language="JavaScript">
<!--
var isIE = (document.all) ? true : false;
document.onkeydown = function(e){
e = e || window.event;
if(e.keyCode == 38 || e.keyCode == 40){
if(isIE){
e.returnValue = false;
}else{
//e.preventDefault();
document.getElementById("osel").blur(); // 让其失去焦点
}
}
}
//-->
</script>
</head><body>
<select id="osel" size="5" style="width:300px;height:200px">
<option value="0">中国</option>
<option value="1">美国</option>
<option value="2">英国</option>
<option value="3">德国</option></select>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<script language="JavaScript">
<!--
window.onload=function(){
var oSel=document.getElementById("osel");
osel.onkeydown=function(e){
oSel.disabled=true;
window.setTimeout(function(){
oSel.disabled=false;
},1);
}
}
//-->
</script>
</head><body>
<select id="osel" size="5" style="width:300px;height:200px">
<option value="0">中国</option>
<option value="1">美国</option>
<option value="2">英国</option>
<option value="3">德国</option>
</select>
</body>
</html>