diff --git a/addons/barcodes/static/src/barcode_service.js b/addons/barcodes/static/src/barcode_service.js
index 53b441605e8a74289b93eb6aa9c2b094603dd769..025bdea6ba456cd7786a48190bfd478216e19766 100644
--- a/addons/barcodes/static/src/barcode_service.js
+++ b/addons/barcodes/static/src/barcode_service.js
@@ -51,10 +51,13 @@ export const barcodeService = {
         /**
          * check if we have a barcode, and trigger appropriate events
          */
-        function checkBarcode() {
+        function checkBarcode(ev) {
             let str = barcodeInput ? barcodeInput.value : bufferedBarcode;
             str = barcodeService.cleanBarcode(str);
             if (str.length >= 3) {
+                if (ev) {
+                    ev.preventDefault();
+                }
                 handleBarcode(str, currentTarget);
             }
             if (barcodeInput) {
@@ -97,7 +100,7 @@ export const barcodeService = {
 
             clearTimeout(timeout);
             if (isEndCharacter) {
-                checkBarcode();
+                checkBarcode(ev);
             } else {
                 bufferedBarcode += ev.key;
                 timeout = setTimeout(checkBarcode, barcodeService.maxTimeBetweenKeysInMs);