fix backspace, limit input

to non control/alt key, so shortcuts can still be used in browser
also F-Keys now are useable again
This commit is contained in:
s72785 2015-07-22 00:57:50 +02:00
parent 9d9c80dd6a
commit a4b42c99c9

View file

@ -17,41 +17,48 @@ function hideBarcode() {
return "" return ""
} }
function barcodeKeyPress(event) { function barcodeKeyPress( event ) { // takes input from either keyboard or barcode scanner
var key = String.fromCharCode(event.charCode) var key = String.fromCharCode( event.charCode )
var input = document.getElementById('crement') var input = document.getElementById( 'crement' )
var inputcount = document.querySelectorAll('[type="text"]').length + document.querySelectorAll('[type="number"]').length var inputcount = document.querySelectorAll( '[type="text"]' ).length + document.querySelectorAll( '[type="number"]' ).length
if ( input && inputcount == 1 ) { if ( input && inputcount == 1 ) { // focus in 'crement' when no other input fields only
input.focus() input.focus()
} }
var focused = document.activeElement var focused = document.activeElement
if ( !focused || focused == document.body ) { if ( !focused || focused == document.body ) {
focused = null focused = null
} else if ( document.querySelector ) { } else if ( document.querySelector ) {
focused = document.querySelector(":focus") focused = document.querySelector( ":focus" )
} }
if ( inputcount <= 1 && ( focused == null || focused.tagName != "INPUT" ) ) { if (
if ( event.keyCode === 13 ) { !event.ctrlKey && !event.altKey // no hotkeys used
var input = document.getElementById('barcodeInput') && ( focused == null || focused.tagName != "INPUT" ) // focus not in input fielf for manual input
if (input && barcodeBuf.length > 0) { ) {
input.setAttribute('value', barcodeBuf) if ( event.keyCode === 13 ) { // carriage return
var input = document.getElementById( 'barcodeInput' )
if ( input && barcodeBuf.length > 0 ) {
input.setAttribute( 'value', barcodeBuf )
input.parentNode.submit() input.parentNode.submit()
return return
} }
barcodeBuf = "" barcodeBuf = ""
event.preventDefault() event.preventDefault()
} else if ( event.keyCode === 27 ){ } else if ( event.keyCode === 27 ) { // escape
console.log( "escape" )
barcodeBuf=hideBarcode() barcodeBuf=hideBarcode()
event.preventDefault() event.preventDefault()
} else if ( event.keyCode === 9 ){ } else if ( event.keyCode === 8 ) { // backspace
console.log( "backspace" )
barcodeBuf = barcodeBuf.substring( 0, barcodeBuf.length - 1 ) barcodeBuf = barcodeBuf.substring( 0, barcodeBuf.length - 1 )
showBarcode( barcodeBuf )
if ( barcodeBuf.length <= 0 ) { if ( barcodeBuf.length <= 0 ) {
barcodeBuf=hideBarcode() barcodeBuf = hideBarcode()
} }
event.preventDefault() event.preventDefault()
} else { } else if ( event.keyCode == 0 ) { // e.g. F-Keys are 112 to 123, A-Za-z0-9 all are 0.
console.log( "some input: " + barcodeBuf + "[" + key + "] <= {" + event.keyCode + "}" )
barcodeBuf += key barcodeBuf += key
showBarcode(barcodeBuf) showBarcode( barcodeBuf )
event.preventDefault() event.preventDefault()
} }
} }