Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入焦点改变_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 输入焦点改变

Javascript 输入焦点改变,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试着做一个类似填字游戏的测验,当输入是带字母的字段时,我需要改变对输入的关注。问题是,我可以将焦点更改为位于同一div中的字段 $(".inputs").keyup(function () { $(this).next().focus(); }); 或者在两个div之间 $(':input').keyup(function (e) { if ($(this).val().length == $(this).attr('maxlength')) { $(this

我试着做一个类似填字游戏的测验,当输入是带字母的字段时,我需要改变对输入的关注。问题是,我可以将焦点更改为位于同一div中的字段

$(".inputs").keyup(function () {
    $(this).next().focus();
});
或者在两个div之间

$(':input').keyup(function (e) {
    if ($(this).val().length == $(this).attr('maxlength')) {
        $(this).closest('div').next().find(':input').first().focus();
    }
})
但我不知道如何改变对下一个输入的关注,不管它是在同一个div中还是在另一个div中

<div class="answer_1">
    <input class="inputs letter square border_orange" maxlength="1"  type="text" />
    <input class="inputs letter square border_orange" maxlength="1" type="text" />
</div>
<div class="answer_2">
    <input class="inputs letter square border_orange" maxlength="1"  type="text" />
    <input class="inputs letter square border_orange" maxlength="1" type="text" />
</div>

Html代码如上所述,我试图在answer_1 div的输入中首先更改输入焦点,当我在这里完成第二个输入时,自动更改下一个div中输入的焦点。
有什么建议吗?

我假设您将有一个
表单,因为您有输入字段

$(“输入”).keyup(函数(){
var inputs=$(this).closest('form').find(':input');
inputs.eq(inputs.index(this)+1.focus();
});

可以编写代码以查看同一div中是否有任何控件。例如,可以使用以下代码

$(".inputs").keyup(function() {
  if ($(this).val().length == $(this).attr('maxlength')) {
    if ($(this).next().length) {
      $(this).next().focus();
    } else {
      $(this).closest('div').next().find(':input').first().focus();
    }
  }
});

请参阅。

您可以使用输入集合,并使用单击元素的索引遍历它:

var$inputs=$(“.inputs”);//获取输入的集合
$inputs.keyup(函数(){
var index=$inputs.index(this);//获取当前输入的索引
$inputs.eq(index+1).focus();//聚焦下一个输入
});

您可以尝试以下方法: 通过设置输入的索引值来解决此问题:)

$(“.inputs”).keyup(函数(){
var thisEl=jQuery(this);
var index=parseInt(thisEl.data('index'));
if($(this.val().length==$(this).attr('maxlength')){
索引++;
jQuery('.inputs[data index=“'+index+''”]).focus();
}
});

您可以使用下面的

$(“.inputs”).keyup(函数(){
if($(this).next().is(“输入”)){
警惕(“下一个孩子”);
}否则{
警报(“下一部门”);
}
});