jQuery 如果在文本输入中按下 Tab 键,请跳过以下输入并转到下一步



我有一些文本输入。如果我从 #input1 跳,我想跳过 #input2 并转到下一步。

<div class="form-group required">
    <label for="input1" class="control-label col-sm-4">Input 1</label>
    <div class="col-sm-5">
        <input type="text" name="input1" class="form-control" id="input1" tabindex="3">
    </div>
</div>
<div class="form-group">
    <label for="input2" class="control-label col-sm-4">Input 2</label>
    <div class="col-sm-5">
        <input type="text" name="input2" id="input2" class="form-control" tabindex="4">
    </div>
</div>
<!-- This field isn't always visible and is dependent on a select list option -->
<div class="form-group required" style="display:none">
    <label for="input3" class="control-label col-sm-4">Input 3</label>
    <div class="col-sm-5">
        <input type="text" name="input3" class="form-control" id="input3" tabindex="5">
    </div>
</div>
<!-- -->
<div class="form-group">
    <label for="withdrawal_amount" class="control-label col-sm-4">Label</label>
    <div class="col-sm-5">
        <input type="text" name="label" class="form-control" id="label" tabindex="5">
    </div>
</div>

我的目标是将焦点定位到 #label 但如果 #input3 可见,我需要定位它。

$('#withdrawal_amount').focusout(function() {
    $(window).keyup(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 9) {
            $(this).next(':input').not('#input2').focus();
            // $('#label').focus();
        }
    });
});

我想过看到 #input3 是可见的,并把焦点放在上面。最好的方法是什么?

这不是重复的。

我想允许焦点到输入#2,但我不希望 Tab 键聚焦到字段

使用键下而不是键 https://jsfiddle.net/09tchwx9/4/

 $(':text').keydown(function(e){
    var key = e.keyCode || e.which,
    ind = $(':text').index(this),
    skip=$(':text').eq(ind+1)
    if(key==9 && skip.hasClass('skip')){
       e.preventDefault();
       $(':text:not(.skip)').filter(function(i){return i> ind}).eq(0).focus();
  }
});

相关内容

最新更新