Design a HTML web page for barcode input

The HTML page used to receive barcode data can be configured with one or more scan fields. Below is an example with 2:
        
        <html>
        <head>
          <script type="text/javascript">
          
         <!-- called when a scan has been completed -->
          function onscantofield(bardata,barfield,doenter) {
            var x = document.getElementById(barfield);
            x.value = bardata;
            if (doenter.localeCompare("true") == 0) document.getElementById("myForm").submit();
          }

          <!-- called when a scan has been completed -->
          function onscan(bardata){
            alert( "Barcode result : " + bardata );
          }

          <!-- called when user from HTML page click on a scanner button, it will start the hardware/camera scanner on iOS -->
          function startscan(barfield){
            window.location = "startbarcodescanner?id="+barfield;
          }
          </script>
        </head>
        <body>
        <form action="http://www.w3schools.com/tags/demo_form_method.asp" method="GET">

          <h3>Enter Barcode:</h3>
          <input id="barcodefield1" /><br />
        
          <input id="barcodefield2" /><br />
        
          <input onclick="startscan('barcodefield1')"
              type="button"
              value="Scan to field 1" />
          <input onclick="startscan('barcodefield2')"
              type="button"
              value="Scan to field 2" />
              <input name="button" type="submit" style="font-size: 20px" value="Send data to server">
         </form>
        </body>
        </html>
        
    
Function onscan() is optional, and can be called, when a scan has been completed. Replace alert() with code updating the server with the scan code.

As to start a scan from the HTML page, and not using a hardware key, it is important to use the location URL readbarcode://. This name is fixed, and cannot be changed. Give the barcode input field as parameter to the call. In the example barcodefield1 and barcodefield2 are used.

If a hardware scan key is used, the scan data will be send to an input field name barcodefield1. This name is fixed, and cannot be changed.