如果用户不更改该选项,请将焦点移动到下一个字段

Move focus to next field if user doesn't change the option

本文关键字:焦点 移动 字段 下一个 用户 选项 如果      更新时间:2023-09-26

我有一个HTML选择列表,如下所示:

<div class="somebox" id="somebox">
     <select name="myoptions" id="myoptions">
        <option value="1">Some Text 1 </option>
        <option value="2">Some Text 2 </option>
        <option value="3">Some Text 3</option>
        <option value="4">Some Text 4 </option>
      </select>
      <input type="text" name="somename1" id="somename1">
      <input type="text" name="somename2" id="somename2">
</div>

并有一些JavaScript代码,它将焦点转移到更改 #myoptions 的下一个元素上。

$("#somebox").on("change", "#myoptions", function(){
   $("#somename1").focus()
});

问题是: - 如果用户只是单击select列表,检查列表中的其他选项但不更改选项,如何将焦点移动到下一个元素?(在这种情况下,焦点位于同一select上,因为用户不会更改值)

这是创建的 JSFiddle。

注意 - 在我们的代码中tab键被禁用,因此用户很难将焦点移动到下一个元素。

这是

你想要的吗?

var cc = 0;
$('#somebox').click(function () {
    cc++;
    if (cc == 2) {
        $(this).change();
        cc = 0;
    }
}).change(function () {
    $("#somename1").focus();
    cc = -1;
});

小提琴

我发现有一个类似的线程在谈论这个:有用的例子