How to get complete barcode scanner input in single JS event?

23 Views Asked by At

I want to force all input from any devices to specific text box within anywhere of page.

So I write this code to handle keyboard input and barcode scanner input.

The event for keyboard is no problem, but I don't know how to write the event for barcode scanner.

If I use keydown for barcode scanner, the event will be called every character, then I can get the last character only.

I expect there is an event for every single scan.

<input type=text id=in>
<script>
    var input = document.querySelector("#in")
    var body = document.querySelector("body")
    body.addEventListener("keydown", forKeyboard)
    body.addEventListener("???????", forBarcodeScanner)
    function forKeyboard(event){
        let printable = event.key.length === 1
        if(event.key === 'Delete'){
            input.value = ''
        }
        if(printable){
            input.value += event.key
        }
    }
    function forBarcodeScanner(event){
        input.value = ''
        input.value = event.key
        console.log(event.key)
    }
</script>
0

There are 0 best solutions below