2016-04-03 5 views
0

Ich habe eine Anwendung erstellt, um alle Produkte aufzulisten, und der Benutzer kann nach Produkten auf verschiedene Arten suchen, einer von ihnen ist Barcode scannen, normalerweise sollte der Benutzer auf die Sucheingabe konzentrieren und den Barcode scannen, das funktioniert gut.Wie wird die Sucheingabe fokussiert, wenn der Benutzer etwas mit JavaScript eingibt?

Aber wenn die Eingabe (Sucheingabe) nicht fokussiert ist, möchte ich es als Standard festlegen, so dass, wenn der Benutzer etwas eintippte, oder Barcode gescannt wurde, diese Eingabe vor dem Keydown oder Tastendruck fokussiert wurde.

Ist das möglich? Wenn wir zum Beispiel ein Ereignis vor (Keydown) oder (Tastendruck) bekommen, können wir uns auf die Eingabe so einfach konzentrieren.

(Die gleiche Idee, wenn Benutzer einen Text aus der Zwischenablage mit Hilfe der Strg + v die Standard-Sucheingabe eingefügt und eingefügt eingefügt).

Antwort

1

Sie kein Ereignis vor keydown benötigen, können Sie nur verwenden keydown:

$(document).bind('keydown',function(e){ 
    $('input').focus(); 
}); 

dies Siehe jsfiddle example

+0

wow! Wie habe ich das verpasst? was ist mit kleben? und die dosierung des barcodescanners keydown auslösen? – Akam

+0

Einfügen funktioniert auch (wie Sie mit der jsfiddle ausprobieren können). Wüsste nicht über den Barcode-Scanner, da ich den Code dafür nicht habe. – Laurens

+0

oh yess, Keydown kann Kontrolltaste erkennen und der Eingang wird fokussiert, dann wird beim Drücken von v der Eingang auf den Eingang eingefügt ... nice – Akam

0

Sie können auch für diese jQuery benötigen.

<input type='text' id='bar_code_input' name='bar_code_input' /> 
<script type='text/javascript'> 
document.addEventListener('keypress', function(){ 
    var bc_input = document.getElementById('bar_code_input'); 
    bc_input.focus(); 
}); 
</script> 

https://jsfiddle.net/5d51z8rr/

+0

Das ist richtig, aber es verliert das erste Zeichen für sicher und testen Sie es auch. – Akam

+0

Auch funktioniert nicht zum Einfügen – Laurens

+0

Ich verwendete Tastendruck als ein Beispiel, können Sie verwenden, was Ereignis möchten Sie. Ich würde auch vorschlagen, das Ereignis selbst einzufangen, da es für das nützlich sein könnte, was Sie tun. –

1

Ja, es ist möglich, wenn Sie einen Ereignis-Listener Objektfenster hinzufügen.

Beispiel:

jQuery(document).ready(function() { 
 
    
 
    jQuery(window).keydown(function(ev) { 
 
    
 
    if (ev.target.tagName === 'INPUT' || ev.target.tagName === 'TEXTAREA') 
 
     return; 
 
    
 
    jQuery('#mydefaulttextbox').focus() 
 
     
 
    }); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
This is my default input: 
 
<input id="mydefaulttextbox" type="text" /> 
 

 
<p> 
 
This is another input: 
 
<input type="text" /> 
 
</p>

Die keydown Bindung verwendet wird, da die Zeichen nur prägt werden, wenn die keyup oder Tastendruckereignis empfangen wird.