如果用户未更改选项,请将焦点移至下一个字段

时间:2014-12-15 09:39:08

标签: javascript jquery html5

我有一个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键被禁用,因此用户很难将焦点移动到下一个元素。

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

var cc = 0;

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

fiddle

我发现有一个类似的线程在谈论这个: useful example