跳过最后一个字段后如何重新聚焦输入字段?

时间:2017-07-05 15:17:32

标签: javascript jquery html forms

我有输入字段。两个需要输入一个是类型提交。就像你在下面看到的那样。

<input id="cs1"   type="text"   value="" placeholder="Call Sign"  onkeyup="showHint(this.value);"  maxlength="16" onmousedown="isKeyPressed(event)" autofocus="autofocus" />

<input id="Fname" type="text"   value="" name="Fname" placeholder="First Name" onkeyup="nameHint(this.value);" onblur="checkIn();" />

<input id="ckin1" type="submit" value="Check In"  />

通常的方法是输入cs1,它会删除可能值的提示。选择一个可能的值并选择“名称”输入。此时名称可能已自动填写或未自动填写。输入名称或接受名称。然后选择提交输入,然后单击它或按Tab键。 这就是问题所在,如果你选择了标签,那么你就被置于不好的URL(地址栏)上。如果单击提交,光标将再次正确返回到cs1输入。 我已经尝试过各种各样的东西,比如你在下面看到的,但都没有。

$(document).ready(function () {
    $('#ckin1').on('keydown', function (e) {
        if (e.keyCode == 9) {
            document.body.firstElementChild.focus();
            e.preventDefault();
            return false;

        }
    });
})
$(document).ready(function () {
$( "#ckin1" ).click(function() {
                $( "#cs1" ).focus();
            });
       });

在ckin1提交的标签后,如何让光标自动返回到cs1输入字段?

1 个答案:

答案 0 :(得分:0)

这似乎工作得很好。由于您已经在使用jQuery,因此使用它来聚焦第一个元素。

&#13;
&#13;
$("#ckin1").on('keydown', function(e) { 
  var keyCode = e.keyCode || e.which; 

  if (keyCode == 9 && !e.shiftKey) { 
    e.preventDefault();
    $('#cs1').focus();
    return false;
  } 
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="cs1"   type="text"   value="" placeholder="Call Sign"  maxlength="16" />

<input id="Fname" type="text"   value="" name="Fname" placeholder="First Name" />

<input id="ckin1" type="submit" value="Check In"  />
&#13;
&#13;
&#13;