在JS创建的元素上模拟tab键

时间:2018-01-10 09:22:22

标签: javascript jquery html

我遇到了JS创建输入的另一个问题。我希望输入尽快关注下一个输入,因为它会被填满。所以我写了一个数字 - >繁荣我在另一个输入上。我发现这个代码已经发布在StackOverflow上了:

var inputs = $(':input').keypress(function(e){ 
    if (e.which == 13) {
       e.preventDefault();
       var nextInput = inputs.get(inputs.index(this) + 1);
       if (nextInput) {
          nextInput.focus();
       }
    }
});

我编辑到:

var inputs = $(':input').keypress(function(e){ 
   var nextInput = inputs.get(inputs.index(this) + 1);
   if (nextInput) {
      nextInput.focus();
   }
});

工作正常。直到我使用JS createElement()函数广告新输入。然后它总是在加载后立即停止在页面上的最后一个输入。

任何解决方案? 您可以关注我的工作here

谢谢!

1 个答案:

答案 0 :(得分:0)

因为当你打电话给$(':输入')。keypress();输入(由JS方法createElement()创建)尚未创建,因此当然不会有keypress事件。

有一些解决方案适合您。最简单的方法是使用委托事件处理程序。您可以看到如何使用它here

感谢@Rory McCrossan的反馈