【问题标题】:How to get back focus after TAB pressed using jQuery?如何在使用 jQuery 按下 TAB 后重新获得焦点?
【发布时间】:2016-03-31 01:04:23
【问题描述】:

我将更改功能绑定到输入元素,当我单击 TAB 进行下一个输入时(有一个动态更新内容的功能)然后我失去了下一个输入的焦点。

我尝试了很多方法,但未能激活对下一个输入的关注。

$(document).on("change", '.usdrate, .usdcost, ', function () {
   updateinputs();
   if($(this).attr('class') == 'usdrate'){
     //not working
     $('.usdcost').focus(); 
   }
});

function updateinputs(){
  //I create new inputs because I changed the values
  //there are many operations here
  $("#test").html('').html('<input class="usdrate"><input class="usdcost">');
}
html code:
<div id="test"><input class="usdrate"><input class="usdcost"></div>

【问题讨论】:

  • 我已经添加了一个答案,但是我不知道这行是什么意思。"$(document).on("change", '.usdrate, .usdcost, ', function ()",那应该是错误的。

标签: javascript jquery focus


【解决方案1】:

我不明白你到底想做什么。

$(document).on("change", '.usdrate, .usdcost, ', function () {

这是一个语法错误

$(document).on("change", '.usdrate,.usdcost', function () {

小提琴:https://jsfiddle.net/soonsuweb/zrjo0ou8/

【讨论】:

  • '.usdrate, .usdcost, ', -> '.usdrate,.usdcost' 你有一个错误的 CSS 选择查询。
【解决方案2】:

 $(function () {
       updateinputs();
       if($('#test').find('input').hasClass('usdrate')){
     
         $('#test').find('input').focus(); 
       }
    });
    function updateinputs(){
    
      $("#test").html('<input class="usdrate"><input class="usdcost">');
    }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>


      

<div id="test"><input class="usdrate"><input class="usdcost"></div>

【讨论】:

  • 为什么不呢,你没看到代码sn-p吗?您应该在更新内容功能之后添加代码。其实问题不是很清楚。
【解决方案3】:

我通过使用解决了:

    updateinputs();
    setTimeout(function () {
     $("#"+nextfocus).select();
    }, 50);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-11
    • 2010-10-14
    • 2011-03-08
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2012-12-05
    相关资源
    最近更新 更多