在不同容器中达到最大长度后,将下一个输入聚焦
我希望在输入字段达到maxlength后关注下一个输入,但输入字段位于不同的容器中。
我的代码:
$(document).ready(function(){ $('input').keyup(function(){ if($(this).val().length==$(this).attr("maxlength")){ $(this).next().focus(); } }); });
Jquery适用于同一div /容器中的输入字段,但不适用于不同的输入字段。 如何关注另一个div /容器?
通过搜索匹配的元素$('input').index(this)
得到当前输入的$('input').index(this)
.eq(i+1)
$('input').index(this)
然后你可以用.eq(i+1)
选择匹配元素中的下一个输入
$(document).ready(function(){ $('input').keyup(function(){ if($(this).val().length==$(this).attr("maxlength")){ var i = $('input').index(this); $('input').eq(i+1).focus(); } }); });
您可以尝试获取所有相关输入字段的列表,方法是遍历DOM直到某个父元素并查找每个输入,确定当前输入元素并选择下一个输入元素。
我会提出一个不同的解决方案:使用tabindex属性。
div class="date_day" id="input_day">
有了这个,你可以创建一个关于“下一个”字段的非线性运动。 重点可以轻松转移到下一个:
$('input').keyup(function(){ if($(this).val().length==$(this).attr("maxlength")){ var tabIndex = +$(this).attr('tabindex'); $('[tabindex=' + (+tabIndex+1) + ']').focus(); } });