Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 使用Enter键移动到输入_Javascript_Jquery_Forms_Input_Enter - Fatal编程技术网

Javascript 使用Enter键移动到输入

Javascript 使用Enter键移动到输入,javascript,jquery,forms,input,enter,Javascript,Jquery,Forms,Input,Enter,是否可以使用enter键移动到表单中的下一个输入字段?我也想使用标签,但是回车键也很好 仅供参考-我确实有几个文本区域,我需要在返回时使用enter键。这会是一场冲突吗 多谢各位。 Erik在黑暗中拍摄(假设您的文本区域已对齐): 如果要将名为“Tabonner”的类添加到要按enter键循环的字段中 $(document).on("keypress", ".TabOnEnter" , function(e) { //Only do something when the user p

是否可以使用enter键移动到表单中的下一个输入字段?我也想使用标签,但是回车键也很好

仅供参考-我确实有几个文本区域,我需要在返回时使用enter键。这会是一场冲突吗

多谢各位。 Erik在黑暗中拍摄(假设您的文本区域已对齐):


如果要将名为“Tabonner”的类添加到要按enter键循环的字段中

$(document).on("keypress", ".TabOnEnter" , function(e)
  {
    //Only do something when the user presses enter
    if( e.keyCode ==  13 )
    {
       var nextElement = $('[tabindex="' + (this.tabIndex+1)  + '"]');
       console.log( this , nextElement ); 
       if(nextElement.length )
         nextElement.focus()
       else
         $('[tabindex="1"]').focus();  
    }   
  });

//Hidden inputs should get their tabindex fixed, not in scope ;)
//$(function(){ $('input[tabindex="4"]').fadeOut();  })
虽然没有前面的答案那么可爱,但它现在起作用了:


通过这种方式,您可以使用标准HTML功能(tabindex)来确定循环顺序。隐藏元素的tabindex应该被删除。

这将非常不直观,因为对于textareas,也可以输入换行符,对吗?对你应该吗?不。弄乱默认浏览器行为是不好的。浏览器训练用户这样做这样做那样做——至少对我来说,如果你偏离了这一点,那网页会激怒我。+1表示友好的想法。是的,这不是直观的,但我发现我自己在一个未完成的表单上点击回车键。现在,重新思考你的问题,看到我专注于一个被遗忘的输入是一个非常好的主意。(不要说点击回车键(如果输入了所有输入),它将提交表单!)+100这是可能的,但不要这样做。TAB键就是用于此目的的。+1。我喜欢这个类的想法,函数的内容显示了一般原理,但实际解决方案可能需要找出下一个可编辑元素是什么,而不仅仅是使用
.next()
@nnnnnn现实世界中的解决方案必须为我猜的每个输入元素设置tabindex。此方法仅循环文本输入,textarea如何?还有一件事:如果其中一个输入具有style=“display:none;”,则在具有display:none;”的输入之前输入key stop function on text input@armen,任何隐藏输入的方法都应该删除tabindex。在文本区域上循环是个好主意,我添加了它。文本区域仍然有一个小问题,因为当它有焦点时,回车键必须创建新行,但不能跳转到下一个元素。另外,这种方法对我来说也不可行,因为一半表单元素是“静态”的,另一半是通过ajax调用呈现的,不同的输入元素数量取决于环境,将元素随机放置在表单的不同位置,因此它们没有“连续性”,因此无法告诉ajax返回这些元素。
$(document).on("keypress", ".TabOnEnter" , function(e)
  {
    //Only do something when the user presses enter
    if( e.keyCode ==  13 )
    {
       var nextElement = $('[tabindex="' + (this.tabIndex+1)  + '"]');
       console.log( this , nextElement ); 
       if(nextElement.length )
         nextElement.focus()
       else
         $('[tabindex="1"]').focus();  
    }   
  });

//Hidden inputs should get their tabindex fixed, not in scope ;)
//$(function(){ $('input[tabindex="4"]').fadeOut();  })