Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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,HTML: 我想$(这个).next()不起作用。。next()函数是否在每种情况下都不工作 单击按钮时,如何聚焦下一个或上一个文本字段? 帮助我。。谢谢您。在脚本中,您的synatx错误为。每个()都应该有一个函数作为其参数 除此之外,每个循环中都有一个逻辑错误,因为您正在循环中调用focus(),焦点处理程序将被调用,并将更改focus引用的变量,因此下一次迭代也将为true,因此next按钮将不起作用 //focused is getting last focused textfield

HTML:

我想
$(这个).next()
不起作用。。
next()
函数是否在每种情况下都不工作

单击按钮时,如何聚焦下一个或上一个文本字段?
帮助我。。谢谢您。

在脚本中,您的synatx错误为
。每个()
都应该有一个函数作为其参数

除此之外,每个循环中都有一个逻辑错误,因为您正在循环中调用
focus()
,焦点处理程序将被调用,并将更改
focus
引用的变量,因此下一次迭代也将为true,因此
next
按钮将不起作用

//focused is getting last focused textfield
var focused = null;
$(".mytextbox").focus(function(){
    focused = $(this);
});

//focus next
function focusNext(){
    $(".mytextbox").each(

        //checking is this textbox focused
        if($(this)[0] == focused[0]){
              $(this).next().focus(); 
              //or
              $(this).next(".mytextbox").focus(); 
        }
    );
}

//focus prev
function focusPrev(){
    $(".mytextbox").each(

        //checking is this textbox focused
        if($(this)[0] == focused[0]){
              $(this).prev().focus(); 
              //or
              $(this).prev(".mytextbox").focus(); 
        }
    );
}

演示:

假设加载页面时默认聚焦第一个输入字段,请参见下面的代码-

HTML:为绑定单击事件的按钮放置
id
s

var focused = null;
$(".mytextbox").focus(function () {
    focused = $(this);
});

//focus next
function focusNext() {
    if (focused && focused.length) {
        focused.next('.mytextbox').focus();
    }
}

//focus prev
function focusPrev() {
    if (focused && focused.length) {
        focused.prev('.mytextbox').focus();
    }
}

var focused = null;
$(".mytextbox").focus(function () {
    focused = $(this);
});

//focus next
function focusNext() {
    if (focused && focused.length) {
        focused.next('.mytextbox').focus();
    }
}

//focus prev
function focusPrev() {
    if (focused && focused.length) {
        focused.prev('.mytextbox').focus();
    }
}
<input type="text" class="mytextbox">
<input type="text" class="mytextbox">
<input type="text" class="mytextbox">
<input type="text" class="mytextbox">

<input id="nextBtn" type="button" class="mybutton" value="focus next">
<input id="prevBtn" type="button" class="mybutton" value="focus prev">
$(function(){
  //focus first input fields
  $(".mytextbox:first").focus();
  var currentFocusedInput = $(".mytextbox:first");

  // next button
  $("#nextBtn").click(function(){
     var nextInputToFocus = currentFocusedInput.next('.mytextbox');
     if($(nextInputToFocus).length > 0)
      {
        currentFocusedInput = $(nextInputToFocus);
      }
      $(currentFocusedInput).focus();
  });

  // previous button
  $("#prevBtn").click(function(){
     var prevInputToFocus = currentFocusedInput.prev('.mytextbox');
     if($(prevInputToFocus).length > 0)
      {
        currentFocusedInput = $(prevInputToFocus);
      }
      $(currentFocusedInput).focus();
  });
});