2016-03-31 3 views
1

Ich binde auf Change-Funktion zu einem Eingabeelement, wenn ich auf TAB für die nächste Eingabe (Es gibt eine Funktion, die den Inhalt dynamisch aktualisieren) klicken, dann verlor ich den Fokus für die nächste Eingabe.Wie bekomme ich den Fokus zurück, nachdem TAB mit jQuery gedrückt wurde?

Ich habe viele Möglichkeiten ausprobiert, aber ich konnte den Fokus auf die nächste Eingabe nicht aktivieren.

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

ich hinzugefügt haben, eine Antwort, aber ich weiß nicht, was ist die Bedeutung dieser Zeile. "$ (document) .on (" ändern "," .usdrate, .usdcost, ', function() ", das sollte falsch sein. –

Antwort

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>

+0

Dies ist keine Arbeit – Akam

+0

Warum nicht, hast du das Code-Snippet nicht gesehen? Sie sollten den Code nach dieser Inhaltsaktualisierungsfunktion hinzufügen. Eigentlich ist die Frage nicht klar. –

0

Ich verstehe nicht, was Sie genau tun wollen. Hier

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

ist ein Syntaxfehler

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

Fiddle: https://jsfiddle.net/soonsuweb/zrjo0ou8/

+0

Dies ist nur Beispielcode :) – Akam

+0

'.usdrate, .usdcost,', -> '.usdrate, .usdcost' Sie haben eine falsche csss selectquery. – soonsuweb

0

I gelöst durch die Verwendung:

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