SSブログ

【バーコード入力をWebアプリで】 [バーコード]

一般的なUSBキーボードインターフェースのバーコードリーダーは、バーコードのスキャン結果をASCIIテキストで返します。

shop_ffta10aubp.jpg

そこでバーコード入力をWebアプリで処理するためのJavaScriptコードを考えました。

Internet Explorerで確認しています。 

マウスやキーボードは極力使わず,バーコードリーダーからの入力のみで自動的にページが遷移するようJavaScriptで制御しています。

---------------------------------------
<html>
<head>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="Content-Type"
        content="text/html; charset=x-sjis">
</head>
<body onload="init_load()">

<form name="barjs" method="post" action="barjs.asp">
        <input type="text" name="barcode" style="ime-mode:disabled;"
         size="20" autocomplete="off"
onKeyUp='ReDirect_bar()'>

         <input type=button value="リセット" onclick='CancelTo()'>

         <%
         '
         ' バーコードのスキャン結果を処理するスクリプト。
         '
         %>

</form>
</body>
</html>

<script Language="JavaScript">

//barcodeへの入力が10桁に達したらサブミットする。
    function ReDirect_bar(){
          f=barjs.barcode.value;
          if  (f.length >= 10) {
                  barjs.submit();
          }
    }

    function CancelTo(){
          location.href = "barjs.asp";
    }

//ページロード時にフィールド"barcode"にフォーカスする。
    function init_load(){
          var element = document.getElementById("barcode");
          element.focus();
    }

</script>
-----------------------------------------

<body>onLoadイベントで,ページの読み込み終了時init_load()をコールしてフィールド"barcode"にフォーカスします。
これでフィールド"barcode"をバーコードリーダーからの入力待ち状態にしています。
          var element = document.getElementById("barcode");
          element.focus();


フィールド"barcode"ではIMEを自動的にOFFにしてオートコンプリートもOFFにしています。
          <input ...
          style="ime-mode:disabled;"
          autocomplete="off"

フィールド"barcode"は入力が10桁に達したら,自動的にサブミットし,次のバーコード入力待ちになります。onKeyUpイベントで10桁に達するまでキー入力がある度に桁数をチェックしています。
          onKeyUp='ReDirect_bar()'

サブミットするとフィールド"barcode"の入力内容はサーバにポストされますので,Active Server PagesやPHPなどのサーバサイドスクリプトで処理することができます。

バーコードリーダーの読み取りエラーなどで入力が10桁に達しない場合のためにリセットボタンを設けています。


nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 1

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。