2

HTML

<input class="fr pinPass" type="password" name="pin1" id="pin1_1" tabindex="100"/>
<label>Enter the third number</label>

<br class="cb"/>

<input class="fr pinPass" type="password" name="pin1" id="pin1_2" tabindex="101"/>
<label>Enter the fourth number</label>                                      
<br class="cb"/>

<input class="fr pinPass" type="password" name="pin1" id="pin1_3" tabindex="102"/>  
<label>Enter the second number</label>

当前的 jQuery

$(".pinPass").focus(function () {
    $(this).keyup(function(){
         $("input").siblings('.pinPass').filter(':first').focus();              
    });
});

问题:

我正在尝试在每个输入字段中的 keyUp 之后的下一个输入字段上设置 autoFocus。到目前为止,我已经提出了一个解决方案,它一直循环直到它到达最后一个被选中的,或者如果我使用 :first 过滤器,它总是返回到它在页面上找到的第一个。

我认为我不能使用 next(),因为它不是集合中的下一个节点。总会有标签分隔每个输入字段。

任何帮助将非常感激。

4

2 回答 2

4

您可以使用:first, 但只有与选择器匹配.next()才会返回下一个兄弟姐妹。相反,您需要一个选择器,如下所示:.nextAll()

$(".pinPass").keyup(function(){
  $(this).nextAll('.pinPass:first').focus();
});

你可以在这里测试一下

于 2010-11-01T14:39:56.647 回答
0

Next 也可以有选择器。

$(this).next('input');
于 2010-11-01T14:12:13.670 回答