我这是用左右方向监实现的
<body>
<center>
<input type="reset" value="Test1" name="a1">
<input type="reset" value="Test2" name="a2">
<br/>
<input type="text" name="T1" onkeydown = "ReachNext(this)"value = 0>
<input type="text" name="T2" onkeydown = "ReachNext(this)"value = 1>
<input type="text" name="T3" onkeydown = "ReachNext(this)"value = 2>
<input type="text" name="T4" onkeydown = "ReachNext(this)"value = 3>
<br/>
<input type="text" name="T5" onkeydown = "ReachNext(this)"value = 4>
<input type="text" name="T6" onkeydown = "ReachNext(this)"value = 5>
<input type="text" name="T7" onkeydown = "ReachNext(this)"value = 6>
<input type="text" name="T8" onkeydown = "ReachNext(this)"value = 7>
<br/>
<input type="submit" value="Test3" name="b1">
<input type="submit" value="Test4" name="b2">
</center>
</body>
<script>
//****************************************************
//* ReachNext(NowText):生成两个只包含 *
//* Text 元素的数组,两个数组的元素互 *
//* 逆(Arr_Next()和Arr_Bef()),并且 *
//* 调用函数MoveNext(ArrName,TagName) *
//* 来回在 Text 元素间移动光标 *
//* 参数:NowText:光标所在 Text的引用 *
//* 作者:月影飞鸿 2003/06/21 *
//****************************************************
function ReachNext(NowText)
{
var i,j=0;
var TextName;
var Arr_All = new Array();
var Arr_Next = new Array();
var Arr_Bef = new Array();
var Next_Len;
KeyCode = event.keyCode;
TextName = NowText.name;
Arr_All = document.getElementsByTagName("input");
for (i = 0;i < Arr_All.length - 1 ; i++)
{
if (Arr_All[i].type == "text")
{
Arr_Next[j] = Arr_All[i];
j = j + 1;
}
}
Next_Len = Arr_Next.length ;
for (i = 0 , j = Next_Len - 1 ; i < Next_Len ; i++ , j--)
{
Arr_Bef[j] = Arr_Next[i];
}
if (KeyCode == 39)
{
MoveNext(Arr_Next , TextName);
}
if (KeyCode == 37)
{
MoveNext(Arr_Bef , TextName);
}}
//*****************************************************
//* MoveNext(ArrName,TagName):移动到下一个 Text *
//* 参数:ArrName:包含全部 Text 元素的数组 *
//* TagName:光标所在 Text 元素的名字 *
//*****************************************************
function MoveNext(ArrName,TagName)
{
for (i = 0 ;i <ArrName.length-1;i++)
{
if (TagName == ArrName[i].name)
{
eval("document.all."+ArrName[i+1].name+".focus()");
return true;
}
}
if (TagName == ArrName[i].name)
{
eval("document.all."+ArrName[0].name+".focus()");
}
}</script>
<body>
<center>
<input type="reset" value="Test1" name="a1">
<input type="reset" value="Test2" name="a2">
<br/>
<input type="text" name="T1" onkeydown = "ReachNext(this)"value = 0>
<input type="text" name="T2" onkeydown = "ReachNext(this)"value = 1>
<input type="text" name="T3" onkeydown = "ReachNext(this)"value = 2>
<input type="text" name="T4" onkeydown = "ReachNext(this)"value = 3>
<br/>
<input type="text" name="T5" onkeydown = "ReachNext(this)"value = 4>
<input type="text" name="T6" onkeydown = "ReachNext(this)"value = 5>
<input type="text" name="T7" onkeydown = "ReachNext(this)"value = 6>
<input type="text" name="T8" onkeydown = "ReachNext(this)"value = 7>
<br/>
<input type="submit" value="Test3" name="b1">
<input type="submit" value="Test4" name="b2">
</center>
</body>
<script>
//****************************************************
//* ReachNext(NowText):生成两个只包含 *
//* Text 元素的数组,两个数组的元素互 *
//* 逆(Arr_Next()和Arr_Bef()),并且 *
//* 调用函数MoveNext(ArrName,TagName) *
//* 来回在 Text 元素间移动光标 *
//* 参数:NowText:光标所在 Text的引用 *
//* 作者:月影飞鸿 2003/06/21 *
//****************************************************
function ReachNext(NowText)
{
var i,j=0;
var TextName;
var Arr_All = new Array();
var Arr_Next = new Array();
var Arr_Bef = new Array();
var Next_Len;
KeyCode = event.keyCode;
TextName = NowText.name;
Arr_All = document.getElementsByTagName("input");
for (i = 0;i < Arr_All.length - 1 ; i++)
{
if (Arr_All[i].type == "text")
{
Arr_Next[j] = Arr_All[i];
j = j + 1;
}
}
Next_Len = Arr_Next.length ;
for (i = 0 , j = Next_Len - 1 ; i < Next_Len ; i++ , j--)
{
Arr_Bef[j] = Arr_Next[i];
}
if (KeyCode == 39)
{
MoveNext(Arr_Next , TextName);
}
if (KeyCode == 37)
{
MoveNext(Arr_Bef , TextName);
}}
//*****************************************************
//* MoveNext(ArrName,TagName):移动到下一个 Text *
//* 参数:ArrName:包含全部 Text 元素的数组 *
//* TagName:光标所在 Text 元素的名字 *
//*****************************************************
function MoveNext(ArrName,TagName)
{
for (i = 0 ;i <ArrName.length-1;i++)
{
if (TagName == ArrName[i].name)
{
eval("document.all."+ArrName[i+1].name+".focus()");
return true;
}
}
if (TagName == ArrName[i].name)
{
eval("document.all."+ArrName[0].name+".focus()");
}
}</script>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货