首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

文件框select()有关问题?用上下键就不能全选文字,为什么?单击没有关问题

2012-03-21 
文件框select()问题?用上下键就不能全选文字,为什么?单击没问题!htmlheadmetahttp-equiv Content-T

文件框select()问题?用上下键就不能全选文字,为什么?单击没问题!
<html>
<head>
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=utf-8 ">
<title> test </title>
<script   type= "text/javascript ">
function   move_inp(i,n,s,a){
keycode=event.keyCode;//focus(),down   40,up   38
if(keycode==40){n=n+1;}else   if(keycode==38){n=n-1;}
if(n <a&&n> =s){eval( "document.all. "+i+ " "+n).focus();eval( "document.all. "+i+ " "+n).select();}
}
</script>
</head>

<body>
<input   onKeyDown= "move_inp( 'a ',0,0,10) "   id= "a0 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',1,0,10) "   id= "a1 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',2,0,10) "   id= "a2 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',3,0,10) "   id= "a3 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',4,0,10) "   id= "a4 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',5,0,10) "   id= "a5 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',6,0,10) "   id= "a6 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',7,0,10) "   id= "a7 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',8,0,10) "   id= "a8 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
<input   onKeyDown= "move_inp( 'a ',9,0,10) "   id= "a9 "   name= " "   value= "dad "   type= "text "   onClick= "this.select(); "> <br>
</body>
</html>


[解决办法]
function move_inp(i,n,s,a){
keycode=event.keyCode;//focus(),down 40,up 38
if(keycode==40 || keycode==38)
{

n= keycode==40?n+1:n-1;
if(n <a &&n > = s)
{

eval( "document.all. "+i+ " "+n).focus();
eval( "document.all. "+i+ " "+n).select();
event.returnValue=false;
}
}
}
[解决办法]
要自动选择。设置onfocus= "this.select() "就好。不必脚本设置
------解决方案--------------------


其实主要就是加了event.returnValue = false;
一般来讲你按了键,都是要触发事件的,而这个事件一般来讲也会产生一些效果。当你没加的时候,其实select()也执行了,但是方法之后returnValue = true的话,就要执行一些我们看不到的代码。这个代码产生的效果就是你一开始看到的了。只有当returnValue = false那段代码才不执行。
也就是说,全选的效果被正常的操作所产生的效果给覆盖了。
[解决办法]
eval( "document.all. "+i+ " "+n).focus();
eval( "document.all. "+i+ " "+n).select();
=========================================已经选择
event.returnValue=false;//阻止接受上下键,不写的话接受,使选择失效了

热点排行