détecter l’entrée du lecteur de code à barres

voici mon code pour me concentrer sur “text2display” si on clique n’importe où sur le formulaire (qui est dans un popup). mais, comment s’ils “tabulent” et naviguent ailleurs (par exemple, URL du navigateur), comment le détecter et revenir à “” text2display “?

$("#barcode_form").click(function(){ var focusedElement = ""; $(":focus").each(function(){ focusedElement = $(this).attr("id") }); if(focusedElement == ""){ $('#text2display').focus() } }) 

Vous voudrez le. Blur (); une fonction. Lorsqu’un élément a “focus” et que l’utilisateur quitte l’élément “focus”, “flou” est appelé et renvoie un événement à l’élément. Un exemple à suivre.

 if(focusedElement == ""){ //if our focused element is empty $('#text2display').live('blur', function(){ //when the target loses focus, we invoke blur, the next line focuses again. //it's also a best practice to do something like fading in the border, $("#text2display").focus(); }); } 

En outre, si je puis me permettre, ce serait une bonne idée d’informer l’utilisateur que son objective est revenu à cet élément. Pour ce faire, la meilleure solution consiste à append une bordure «rouge», puis à l’effacer progressivement. Une façon est comme suit ->

 if(focusedElement == ""){ //if our focused element is empty $('#text2display').live('blur', function(){ //when the target loses focus, we invoke blur, the next line focuses again. //it's also a best practice to do something like fading in the border, $("#text2display").focus(function(){ $(this).animate({ //when the element has been re-focused, we'll give it a red border briefly. borderColor: '#ff0000'; }, function(){ //once the animation completes, fade the border out $(this).animate({ borderColor: 'transparent' }, 2000); } ); }); }); } 

De plus, comme nous ne voulons pas de problèmes de redimensionnement, nous devons append du CSS à nos entrées.

 input{ border:1px solid transparent; } 

Cela devrait bien fonctionner pour vous.