Javascript 如何使用上/下箭头导航文本框

Javascript 如何使用上/下箭头导航文本框,javascript,c#,asp.net,ajax,Javascript,C#,Asp.net,Ajax,我有以下一页: <head runat="server"> <title></title> <script type="text/javascript"> var current = ""; function Tab(e) { var evtobj = window.event ? event : e; var unicode =

我有以下一页:

          <head runat="server">
    <title></title>
    <script type="text/javascript">
        var current = "";


        function Tab(e) {
            var evtobj = window.event ? event : e;
            var unicode = evtobj.charCode ? e.charCode : evtobj.keyCode;


            var targ;
            if (evtobj.target) targ = evtobj.target;
            else if (evtobj.srcElement) targ = evtobj.srcElement;


            if (unicode == 37) {
                var elements = document.getElementsByTagName("input");
                for (var i = 0; i < elements.length; i++) {
                    if (elements[i].tabIndex == targ.tabIndex - 1) {
                        elements[i].focus();
                        return true;
                    }
                }
            }
            else if (unicode == 39) {
                var elements = document.getElementsByTagName("input");
                for (var i = 0; i < elements.length; i++) {
                    if (elements[i].tabIndex == targ.tabIndex + 1) {
                        elements[i].focus();
                        return true;
                    }
                }
            }
            else {
                return true;
            }
        }
    </script>
</head>
<body onkeydown="return Tab(event);">
    <form id="form1" runat="server">
    <asp:TextBox ID="TextBox1" TabIndex="1" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox2" TabIndex="2" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox3" TabIndex="3" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox4" TabIndex="4" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox5" TabIndex="5" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" />

        <br />
    <asp:TextBox ID="TextBox6" TabIndex="6" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox7" TabIndex="7" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox8" TabIndex="8" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox9" TabIndex="9" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox10" TabIndex="10" runat="server"></asp:TextBox>
    </form>
</body>

var current=“”;
功能选项卡(e){
var evtobj=window.event?事件:e;
var unicode=evtobj.charCode?e.charCode:evtobj.keyCode;
var targ;
如果(evtobj.target)target=evtobj.target;
如果(evtobj.srcelelement)target=evtobj.srcelelement,则为else;
如果(unicode==37){
var elements=document.getElementsByTagName(“输入”);
对于(var i=0;i

它适用于右/左箭头导航,具体取决于每个文本框的选项卡索引,我需要对上/下箭头执行相同的操作,通过在当前文本框上方或下方的文本框上设置焦点来上下导航,例如,如果焦点在文本框3上,我按下下箭头,则焦点应移动到文本框8,因为它位于文本框8下方,反之亦然。

当前代码移动+1或-1。你试过+5和-5吗?谢谢,它可以工作,但我仍然需要修改,因为在我的实际情况下,我没有相同数量的文本框在每一行。所以它并不总是+/-5你可以分别使用
unicode==37 | | unicode==38
&
unicode==39 | | unicode==40
。以下是箭头键的JS键码:37=左,38=上,39=右,40=下。您可以通过任何方式要求文本框/行的数量吗?或者有没有办法计算出一排会有多少人?您正在使用
getElementsByTagName
,因此您已经可以从中获得元素计数。然后也许你可以计算出移动+/-的数量。@TetsuyaYamamoto会使用向上或向下代码将焦点向上或向下移动一行吗?他们不是真的吵架。