【问题标题】:How to jump to next form input field如何跳转到下一个表单输入字段
【发布时间】:2014-12-28 12:58:01
【问题描述】:

我希望光标在按下回车时跳转到下一个输入字段。

如果我从下面的代码中删除“选择”标签,它就可以工作。但我需要它与“选择”标签一起使用。我的 javascript 出了什么问题?

<html>
<head>
<script type="text/javascript">
function jump(elmnt,content)
{
if (event.keyCode == 13)
    {
    next=elmnt.tabIndex
    document.jumpForm.elements[next].focus()
    }
}
</script>
</head>
<body>
<p>This script automatically jumps to the next input field when the current field's maxlength has been reached.</p>
<form name="jumpForm">
<select style = "border: 4px solid red;" name = "typ" tabindex="0">
                        <option value = "+">Zugang</option>
                        <option value = "-">Abgang</option>
                        <option value = "b">Bruchware</option>
                        <option value = "x">Lagerort löschen</option>
                    </select>
<input size="3" tabindex="1" onkeyup="jump(this,this.value)">
<input size="3" tabindex="2" onkeyup="jump(this,this.value)">
<input size="3" tabindex="3" onkeyup="jump(this,this.value)">
</form>
</body>
</html>

【问题讨论】:

    标签: javascript forms input


    【解决方案1】:

    这是因为现在元素的选项卡索引和数组索引是相同的,例如第一个文本输入的 tabIndex 为 1 并且是第二个输入字段,因此它在 jumpform.elements 数组中也具有索引 1。如果您删除select,它将成为第一个元素,因此下一个元素现在的索引为 1 并获得焦点。

    试试next = elmnt.tabIndex + 1;

    【讨论】:

      【解决方案2】:

      我加了

      -事件监听器

      -tabindex+1

      -onkeyup 选择

       <html>
          <head>
          <script type="text/javascript">
          function jump(elmnt,content)
          {
          document.addEventListener('keyup', function(event) {
      
          if (event.keyCode == 13)
              {
      
              next=elmnt.tabIndex+1;
              document.jumpForm.elements[next].focus()
              }
      
          });
          }
          </script>
          </head>
          <body>
          <p>This script automatically jumps to the next input field when the current field's maxlength has been reached.</p>
          <form name="jumpForm">
          <select style = "border: 4px solid red;" name = "typ" tabindex="0" onkeyup="jump(this,this.value)">
                                  <option value = "+">Zugang</option>
                                  <option value = "-">Abgang</option>
                                  <option value = "b">Bruchware</option>
                                  <option value = "x">Lagerort löschen</option>
                              </select>
          <input size="3" tabindex="1" onkeyup="jump(this,this.value)">
          <input size="3" tabindex="2" onkeyup="jump(this,this.value)">
          <input size="3" tabindex="3" onkeyup="jump(this,this.value)">
          </form>
          </body>
          </html>
      

      【讨论】:

        猜你喜欢
        • 2017-09-29
        • 2017-12-01
        • 2018-12-25
        • 2021-11-16
        • 2012-11-23
        • 2011-09-15
        • 2012-06-20
        • 1970-01-01
        • 2016-06-11
        相关资源
        最近更新 更多