2016-05-24 1 views
1

Ich habe eine Autocomplete-Textbox in einem Formular und ich möchte erkennen, ob Benutzer auf das Textfeld durch Navigation durch die Tabulatortaste press.I bedeutet, Tabindex wurde auf verschiedenen Formularfeldern eingerichtet und Benutzer kann Felder durch Drücken von Tabs navigieren. Jetzt möchte ich einige Aktionen ausführen, wenn Benutzer direkt auf Mausklick/Foxus auf das Textfeld und einige andere Aktion, wenn der Benutzer auf das Textfeld über Registerkarte fokussiert hat.Detect Tab Key-Ereignis auf Textbox im Fokus

Unten ist der Code, den ich war trying.But egal jedes Mal Code 0.

$('#tbprofession').on('focus', function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 9) { 
      alert('Tabbed'); 
     } 
     else 
     { 
      alert('Not tabbed'); 
     } 
}); 

Dieser Code funktioniert nicht.

Hinweis: Vor der Kennzeichnung duplizieren wird es gut sein, wenn Sie die Frage richtig verstehen.Else kann ich es klarer mit ausführlicherer Beschreibung machen.

Jeder kann mir etwas Licht zeigen?

+0

Um ... warum denken Sie, dass '' focus' Ereignis keyCode' Eigenschaft haben? –

+0

Mögliches Duplikat von [Erkennungsfokus durch Tabulatortaste ausgelöst?] (Http://stackoverflow.com/questions/16144611/detect-focus-initiated-by-tab-key) –

+0

Ich weiß, deshalb, wenn Sie bemerken, dass es ein OR gibt condition.Auch muss ich es auf 'Fokus' ermitteln –

Antwort

2

Sie können so etwas versuchen:

$(document).on("keyup", function(e) { 
    if ($('#tbprofession').is(":focus")) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 9) { 
     alert('I was tabbed!'); 
    } else { 
     alert('not tabbed'); 
    } 
    } 
}); 

Geige: https://jsfiddle.net/xc847mrp/

+0

das funktioniert nicht, wenn Benutzer zum zweiten Mal in das Textfeld klicken. –

0

Sie könnten eine Reihe von Schlüsselereignissen jederzeit ein Benutzer ausgelöst haben eine Taste drückt, während auf Ihrer Seite. Obwohl Sie an einen Keylogger denken. Oder einfach den letzten Schlüssel behalten. Oder ein boolesches Sprichwort, wenn die letzte gedrückte Taste ein TAB war oder nicht.

Und im Fokus können Sie diese Variable betrachten.

2

können Sie keyup Ereignis statt: ...

$('#tbprofession').on('keyup', function(e) { 
 
    var code = (e.keyCode ? e.keyCode : e.which); 
 
    if (code == 9) { 
 
    console.log('I was tabbed!', code); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input autofocus> 
 
<input id='tbprofession'>

+0

@Gothdo Du hast Recht, ich fühlte nur, ich dachte zu viel. stattdessen keyup Ereignis wird tun. – Jai

+0

das funktioniert nicht. Wenn es Ihnen nichts ausmacht habe ich meine Frage mit Klarheit bearbeitet. –

Verwandte Themen