2012-04-04 5 views
2

Ich muss einen Barcode mit ASCII 29 (Gruppentrennzeichen) in ein HTML-Eingabefeld scannen und alle Gruppenseparatoren durch | ersetzen. Die folgende JavaScript-Funktion funktioniert, wenn ich den Barcode zuerst in Notepad++ scanne und dann in das Eingabefeld kopiere, aber nicht, wenn der Barcode direkt in das Eingabefeld gescannt wird. Was ist das Problem?Scannen eines Barcodes mit einem ASCII-Steuerzeichen in ein Eingabefeld

var barcode = document.getElementById('barcode').value; 
barcode = barcode.replace(new RegExp(String.fromCharCode(29), 'g'), '|'); 
alert(barcode); 
+0

Wahrscheinlich eine Browser-Begrenzung. Welche Browser hast du getestet? –

+0

Firefox 11 und IE 8. –

+0

Können Sie die Browser-Entwicklungstools verwenden, um den Wert der Daten zu prüfen, die in das HTML-Eingabefeld eingegeben werden, nachdem Sie einen Barcode gescannt und überprüft haben, ob er ASCII 29-Werte enthält? –

Antwort

1

Auf meinem Symbol Tech Barcodescanner werden die Zeichen als Tastenanschläge gesendet. Der Gruppenseparator emuliert beispielsweise, indem er die Taste left_control gedrückt hält und dann eine rechte Klammer sendet. Ihr Browser wird die simulierten Tastenanschläge so handhaben, als ob Sie versuchen würden, CTRL + ] als Abkürzung zu verwenden.

Sie können dieses Ereignis erfassen mit onkeydown und event.which wie hier beschrieben: Firefox onkeydown detect pressed key

Verwandte Themen