利用键盘上的上下左右(回车)键模拟出tab 键的功能上下左右移动焦点

本文介绍了一种使用JavaScript实现键盘按键导航的方法,通过设置特定的按键事件,可以在网页表单元素间进行快速切换。此外,还提供了一个使用JavaScript调用本地EXE文件的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


ExpandedBlockStart.gif<script language="javascript">
InBlock.gif
function doKeyDown(obj)
ExpandedSubBlockStart.gif
{
InBlock.gif    
switch(event.keyCode)
ExpandedSubBlockStart.gif    
{
InBlock.gif    
case 13:
InBlock.gif    
case 39:
InBlock.gif    
case 40:
InBlock.gif        
if(obj.nextid != "")document.all(obj.nextid).select();
InBlock.gif    
break;
InBlock.gif    
case 37:
InBlock.gif    
case 38:
InBlock.gif        
if(obj.preid != "")document.all(obj.preid).select();
InBlock.gif    
break;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif
</script>
None.gif第一:
<input type="text" id="T_1" nextid="T_2" preid="T_8" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_2" nextid="T_3" preid="T_1" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_3" nextid="T_4" preid="T_2" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_4" nextid="T_5" preid="T_3" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_5" nextid="T_6" preid="T_4" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_6" nextid="T_7" preid="T_5" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_7" nextid="T_8" preid="T_6" onkeydown="doKeyDown(this)"><br>
None.gif第一:
<input type="text" id="T_8" nextid="T_1" preid="T_7" onkeydown="doKeyDown(this)"><br>
None.gif
None.gif<script language="javascript">
None.gif
function doKeyDown(obj)
ExpandedBlockStart.gif
{
InBlock.gif
//    alert(obj.nextid);
InBlock.gif
    switch(event.keyCode)
ExpandedSubBlockStart.gif    
{
InBlock.gif    
case 13:
InBlock.gif    
case 39:
InBlock.gif    
case 40:
InBlock.gif        
if(obj.nextid != "")
ExpandedSubBlockStart.gif        
{
InBlock.gif            document.all(obj.nextid).focus();
InBlock.gif
//            document.all(obj.nextid).select();
ExpandedSubBlockEnd.gif
        }

InBlock.gif    
break;
InBlock.gif
InBlock.gif    
case 37:
InBlock.gif    
case 38:
InBlock.gif        
if(obj.preid != "")        document.all(obj.preid).focus();
InBlock.gif    
break;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
<body leftmargin="0" topmargin="14">
None.gif
<div class="menu" style="background:" id="T_0" nextid="T_1" preid="T_9" onkeydown="doKeyDown(this)">
None.gif
<table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
None.gif
<tr>
None.gif
</a></td>
None.gif    
<td width="20%" valign="top" align="right">大陆</td>
None.gif    
</tr>
None.gif
</table>
None.gif
</div>
None.gif
None.gif
<div class="menu" border=0 id="T_1" nextid="T_2" preid="T_8" onkeydown="doKeyDown(this)">
None.gif  
<table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
None.gif  
<tr>
None.gif
</a></td>
None.gif    
<td valign="top" align="right">大陆</td>
None.gif  
</tr>
None.gif    
</table>
None.gif
</div>
None.gif
None.gif<html>
None.gif
<head>
None.gif
<title>Untitled Document</title>
None.gif
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
ExpandedBlockStart.gif
<script language="javascript">
InBlock.gif
var cols=3;
InBlock.gif
var obj;
InBlock.gif
var CanMove=false;
InBlock.gif
var key;
ExpandedSubBlockStart.gif
function setobj(input){
InBlock.gif    obj
=input;
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedSubBlockStart.gif
function init(){
InBlock.gif    document.onkeydown
=keyDown;
InBlock.gif    document.onkeyup
=keyUp;
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedSubBlockStart.gif
function keyDown(DnEvents){
InBlock.gif    
var key=window.event.keyCode;
ExpandedSubBlockStart.gif    
if(key==116){
InBlock.gif        window.event.keyCode
=0;
InBlock.gif        
return false;
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockStart.gif    
if(key==8){
ExpandedSubBlockStart.gif        
if(event.srcElement.tagName!="INPUT"){
InBlock.gif            event.cancelBubble 
= true;
InBlock.gif            event.returnValue 
= false;
InBlock.gif            
return false;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }
     //此处为按下ctrl  注释此处可以实现不需要ctrl
InBlock.gif    
var IsCtrl=window.event.ctrlKey;
ExpandedSubBlockStart.gif    
if(!IsCtrl){
InBlock.gif        
return;
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockStart.gif    
for(var i=0;i<document.forms[0].elements.length;i++){
ExpandedSubBlockStart.gif        
if(document.forms[0].elements[i]==obj){
ExpandedSubBlockStart.gif            
if (key == 37){//
ExpandedSubBlockStart.gif
                if(i>0){
InBlock.gif                    document.forms[
0].elements[i-1].focus();
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

ExpandedSubBlockStart.gif            
if (key == 38){//
ExpandedSubBlockStart.gif
                if(i>cols-1){
InBlock.gif                    document.forms[
0].elements[i-cols].focus();
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

ExpandedSubBlockStart.gif            
if (key == 39){//
ExpandedSubBlockStart.gif
                if(i<document.forms[0].elements.length-1){
InBlock.gif                    document.forms[
0].elements[i+1].focus();
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

                  if (key == 13)
                  {//→ 
                                    event.keyCode = 9; 
                   }

ExpandedSubBlockStart.gif            
if (key == 40){//
ExpandedSubBlockStart.gif
                if(i<document.forms[0].elements.length-cols){
InBlock.gif                    document.forms[
0].elements[i+cols].focus();
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedSubBlockStart.gif
function keyUp(UpEvents){
InBlock.gif    
return false;
ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
</head>
None.gif
None.gif
<body bgcolor="#FFFFFF" text="#000000" onload="init()">
None.gif
<form>
None.gif
<table border="0" cellspacing="0" cellpadding="0" align="center">
None.gif  
<tr>
None.gif    
<td>
None.gif      
<input type="text" name="textfield" onfocus="setobj(this)">
None.gif    
</td>
None.gif    
<td>
None.gif      
<input type="text" name="textfield2" onfocus="setobj(this)">
None.gif    
</td>
None.gif    
<td>
None.gif      
<input type="text" name="textfield3" onfocus="setobj(this)">
None.gif    
</td>
None.gif  
</tr>
None.gif  
<tr>
None.gif    
<td> 
None.gif      
<input type="text" name="textfield5" onfocus="setobj(this)">
None.gif    
</td>
None.gif    
<td> 
None.gif      
<input type="text" name="textfield6" onfocus="setobj(this)">
None.gif    
</td>
None.gif    
<td> 
None.gif      
<input type="text" name="textfield7" onfocus="setobj(this)">
None.gif    
</td>
None.gif  
</tr>
None.gif
</table>
None.gif
</form>
None.gif用Ctrl+方向键可以方便的在控件中移动,也可以不要Ctrl的。
None.gif
</body>
None.gif
</html>
None.gif
js打开本地的exe文件
None.gif<html xmlns="http://www.w3.org/1999/xhtml" >
None.gif
<head runat="server">
None.gif    
<title>WebForm1</title>
ExpandedBlockStart.gif    
<script> function aaaa()
ExpandedSubBlockStart.gif    
{
InBlock.gif     (
new   ActiveXObject("wscript.shell")).run("C:\TDDOWNLOAD/rfwolusr.exe")   
InBlock.gif
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif    
</script>
None.gif
</head>
None.gif
None.gif
<body>
None.gif    
<form id="form1" runat="server">
None.gif    
<div>
None.gif        
<asp:Button ID="Button1" runat="server" OnClientClick="aaaa()" Text="Button"   />
None.gif        
&nbsp;&nbsp;
None.gif          
</div>
None.gif    
</form>
None.gif
</body>
None.gif
</html>


本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2006/07/29/462720.html,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值