Zadejte hledaný výraz...

Čtečka čárkových kódů – jak odchytit prefix kvůli input focus?

xjohn
verified
rating uzivatele
(1 hodnocení)
27. 1. 2015 20:09:07
Řeším problém s USB čtečkou čárkových kódů. Ta v praxi funguje stejně jako klasická klávesnice, ale patrně jako kdybyste všechny klávesy stiskli najednou – nepíše znaky postupně. Pomocí prvního znaku (prefixu) chci udělat focus na input, abych zajistil, že se kód napíše do něj a následně odešle. Takže jsem si nastavil prefix u čtečky např. na znak *. Takže po načtení kódu je to stejné, jako kdybych na klávesnici napsal *123456 ENTER. Bohužel následující kód po načtení snímačem nefunguje – asi kvůli tomu, že jquery vůbec nerozezná to, že by byla napsaná hvězdička, protože čtečka vloží najednou všechny znaky a potvrdí enterem.
Když ozkouším pouze na klávesnici zmáčknout hvězdičku, tak vše funguje jak má.
Máte případně někdo nápad jak vyřešit to, aby vždy po načtení kódu byl správně focus v příslušeném inputu a správně se tak odeslal formulář?
27. 1. 2015 20:09:07
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086355
Čtečka určitě všechny znaky najednou nepošle. Není to technicky možné.
Problém bych viděl v tom, že je zadání natolik rychlé, že jquery nedokáže včas zareagovat. Jak to řešit ale neporadím.
---------- Příspěvek doplněn 27.01.2015 v 20:19 ----------
javascript - Scan barcode into a specific textbox - Stack Overflow
Tak asi poradím. Zkuste event paste(). Jinak to řeší viz odkaz
27. 1. 2015 20:15:09
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086354
Riedl
verified
rating uzivatele
27. 1. 2015 20:20:19
řeším to tak, že čekám 0,2 vteřiny po té, co se input vyplní.. na ruční zadání mám druhý input. abych se přiznal nevím už proč zrovna 0,2 vteřiny, ale funguje to..
27. 1. 2015 20:20:19
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086353
xjohn
verified
rating uzivatele
(1 hodnocení)
27. 1. 2015 22:46:13
Napsal Riedl;1162378
řeším to tak, že čekám 0,2 vteřiny po té, co se input vyplní.. na ruční zadání mám druhý input. abych se přiznal nevím už proč zrovna 0,2 vteřiny, ale funguje to..
Ale toto čekání myslíte kvůli odeslání formuláře, ne? Aby tam byly přeneseny všechny znaky předtím, než se odešle. Nebo jaký vliv má to čekání na focus toho inputu?
---------- Příspěvek doplněn 27.01.2015 v 22:58 ----------
Napsal mytrix;1162370
Čtečka určitě všechny znaky najednou nepošle. Není to technicky možné.
Problém bych viděl v tom, že je zadání natolik rychlé, že jquery nedokáže včas zareagovat. Jak to řešit ale neporadím.
---------- Příspěvek doplněn 27.01.2015 v 20:19 ----------
javascript - Scan barcode into a specific textbox - Stack Overflow
Tak asi poradím. Zkuste event paste(). Jinak to řeší viz odkaz
Tak ani even paste to neřeší, s tím to vůbec nefunguje. Ale spolehlivě funguje obecne event keydown, ale tam je ten problém, že vznikne focus na input i ve chvíli, kdy se prostě začne psát na klávesnici. Proto jsem chtěl focus pouze při znaku hvězdičky. To funguje když se napíše na klávesnici, ale načtení čtečkou nikoli.
Napadla mě jedna věc - nemůže být problém v tom, že ta hvězdička napsaná čtečkou je "jiná hvězdička" než ta běžně napsaná na klávesnici? Jinak řečeno nevíte, jestli e.which == 106 je stejná hvězdička jako ta nastavená na čtečce skrz byte jako 0 4 2 ?
27. 1. 2015 22:46:13
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086352
Fido123
verified
rating uzivatele
(13 hodnocení)
27. 1. 2015 23:01:06
No a co kdyby sis ty znaky po hvězdičce začal ukládat do nějaké proměnné a po entru to hezky v klidu vložil do toho textboxu, nebo kde to chceš...
27. 1. 2015 23:01:06
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086351
Jiří
verified
rating uzivatele
(1 hodnocení)
27. 1. 2015 23:15:51
Případně zkusit prostudovat manuál čtečky jestli třeba neumí nastavit rychlost posílání, některé to umožňují.
27. 1. 2015 23:15:51
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086350
JKHouba
verified
rating uzivatele
(1 hodnocení)
28. 1. 2015 08:31:12
A opravdu čtečka čárových kódů zapisuje kód tak, že se dá u ní použít událost keydown (plus kód hvězdičky-106)?
28. 1. 2015 08:31:12
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086349
xjohn
verified
rating uzivatele
(1 hodnocení)
28. 1. 2015 11:25:33
Napsal JKHouba;1162483
A opravdu čtečka čárových kódů zapisuje kód tak, že se dá u ní použít událost keydown (plus kód hvězdičky-106)?
Právě že asi zapisuje nějak jinak, ale netuším jak to zjistit a podchytit.. musí být podle mě problém právě v kódu. Protože samotnou událost keydown chytne, ale kód hvězdičky - 106 nikoli. Jak tedy zjistit co skutečně čtečka posílá? Když je kurzor v inputu a načtu, tak je hvězdička na prvním místě v pořádku.
28. 1. 2015 11:25:33
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086348
Fido123
verified
rating uzivatele
(13 hodnocení)
28. 1. 2015 11:37:32
Napsal xjohn;1162562
Jak tedy zjistit co skutečně čtečka posílá?
Možná ta čtečka posílá nejprve nějaké řídící znaky. Tak to přece není problém si to z toho eventu nechat vypsat, co za kód klávesy vlastně zachytil...
---------- Příspěvek doplněn 28.01.2015 v 11:40 ----------
Nebo si zkus tohle.
28. 1. 2015 11:37:32
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086347
JKHouba
verified
rating uzivatele
(1 hodnocení)
28. 1. 2015 12:13:50
Napsal xjohn;1162562
Právě že asi zapisuje nějak jinak, ale netuším jak to zjistit a podchytit.. musí být podle mě problém právě v kódu. Protože samotnou událost keydown chytne, ale kód hvězdičky - 106 nikoli. Jak tedy zjistit co skutečně čtečka posílá? Když je kurzor v inputu a načtu, tak je hvězdička na prvním místě v pořádku.
Trochu jsem z toho pomatenej. Jak jsi poznal, že samotnou událost keydown chytne? Zkusil jsi třeba místo hvězdičky nastavit nějakou číslici, která není alespoň minimálně na druhém místě čárového kódu?
Asi bych to řešil buď proměnou nebo pomocným skrytým imputem, vyhodnotil první znak a pokud by byl * tak fokusnul správný input, vložil čárový kód a případně odeslal (nebo co má následovat).
Zkusil bych třeba takovýto "kostrbatý" script a pokud by zafungoval, pak hledal lepší řešení. Dokud přesně nevíš, co vše a jak leze ze čtečky, tak to může být na hodně dlouho. (nejsem jsi jistý, jestli odeslaný kód je opravdu imitace postupného stisknutí jednotlivých kláves znaků čárového kódu)
28. 1. 2015 12:13:50
https://webtrh.cz/diskuse/ctecka-carkovych-kodu-jak-odchytit-prefix-kvuli-input-focus#reply1086346
Pro odpověď se přihlašte.
Přihlásit