Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 - Fatal编程技术网

Javascript 关注页面上任意位置的下一个输入元素

Javascript 关注页面上任意位置的下一个输入元素,javascript,jquery,html,Javascript,Jquery,Html,以这一节为例。 有两个文本框(页面上的任意位置)。 当用户按Enter键时,我试图将焦点从第一个输入设置为下一个输入。 在JQuery中如何实现这一点?您可以使用JQuery的.keypress事件 HTML <div> <table><tr><td><input type="text"/></td></tr></table> </div> <div> <tabl

以这一节为例。 有两个文本框(页面上的任意位置)。 当用户按Enter键时,我试图将焦点从第一个输入设置为下一个输入。
在JQuery中如何实现这一点?

您可以使用JQuery的
.keypress
事件

HTML

<div>
  <table><tr><td><input type="text"/></td></tr></table>
</div>
<div>
  <table><tr><td><input type="text"/></td></tr></table>
</div>
工作演示

希望这有帮助

$(document).ready(function(){

    $('#first').keypress(function(e){
    if(e.keyCode ==13)
    {
      $('#second').focus();
    }
  })
});
工作

试试这个:)

$(文档)。按键(功能(e){
如果(e.which==13){
var focusElem=document.activeElement;
var nextInput=$(focusElem.next().attr('id');
$(“#”+nextInput).focus();
}
});

$(文档).ready(函数(){
$('input[type=text]')。按键(函数(e){
如果(e.keyCode==13){
if($(this.attr('class')=“last”){
$('input[type=text]').eq(0).focus()
}否则{
$('input[type=text]')。最近('input[type=text]')。焦点();
}
}
});
});

试试这个这会对你有帮助

$(文档).ready(函数(){
$('input')。打开(“按键”,功能(e){
如果(e.which==13){
var tab=$(this.attr(“tabindex”)+1
$(“输入[tabindex=“+tab+”])。焦点();
}
});
});

您可以为所有输入元素提供一个类(如果您的文档中没有输入类型的文本元素,而您不想将焦点放在该元素上,则可以通过“输入文本”标记执行相同的操作),并且可以找到具有相同类的下一个输入元素

$(“.test”).按键(功能(e){
var输入=$(“.test”);
如果(e.which==13){
var$next=inputs.filter(“:gt(“+inputs.index(this)+”).first();
$next.focus();
}
});

您可以尝试其他选择,如

HTML:

 $(document).on("keydown", "#Textbox1", function(e) {
      var keyCode = e.keyCode || e.which; 
      if (keyCode == 13) {                       
        e.preventDefault(); 
        $("#Textbox2").focus();
      }
    });

只是一个小提示,你知道这是违反直觉的,对吗?通常在表单中使用Enter键提交论坛,而按Tab键通常会将您带到表单中的下一个字段。如果你打算改变这种行为,人们可能会感到困惑。是的,我完全知道这一点。我提到的回车键只是想告诉大家我是什么时候开始做的。如果只是这个想法而不是键,那么就使用tabindex和tab键
tabindex将是您的解决方案尝试它可能的重复在我的情况下不会真正有效,因为我的页面将有大约20个文本框,遵循这种方法意味着我必须将函数分配给每个文本框。
$(This).next('input.text').focus()将完成此操作。检查更新的fiddle here=>输入元素不是兄弟元素。在这种情况下,.next()将不起作用。如果当前文本框是最后一个文本框,它仍然不会返回到上一个控件!在我的问题中,严格地证明了输入元素不是兄弟元素。parseInt是必需的
 $(document).on("keydown", "#Textbox1", function(e) {
      var keyCode = e.keyCode || e.which; 
      if (keyCode == 13) {                       
        e.preventDefault(); 
        $("#Textbox2").focus();
      }
    });
<div>
  <table><tr><td><input type="text" class='inputs'/></td></tr></table>
</div>
<div>
  <table><tr><td><input type="text" class='inputs'/></td></tr></table>
</div>
$(document).on("input", "input", function(e){
   if(e.which == 13){
       $(this).next('.inputs').focus();
   }
});