如何在使用jQuery按下TAB后重新获得焦点?

时间:2016-03-31 01:04:23

标签: javascript jquery focus

我将更改函数绑定到输入元素,当我单击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>

3 个答案:

答案 0 :(得分:0)

 $(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>

答案 1 :(得分:0)

我不明白你想要做什么。

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

这是语法错误

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

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

答案 2 :(得分:0)

我通过使用:

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