2017-01-24 9 views
0

ウェブページフォームのテキストフィールドにバーコードスキャナの入力を強制する必要があります。これは、個々のユーザーが持ち歩く独自のバーコードカードを持つ製造環境で使用するためのもので、他の人々の仕事を予約することは許されません。スキャンするコードは従業員番号で、常に4文字です。バーコードスキャナはUSBであり、個々の文字を順番に入力するキーボードとして動作します。ウェブ入力にキーボードウェッジスキャナのバーコード入力を検出し、キーボード入力をブロックする方法

答えて

1

私が思いついたコードは、文字1と4の間にかかる時間を検出します。それが10ミリ秒未満であれば、コードはバーコードスキャンされました。コードがペーストされている場合、フィールドは決して1文字長ではないため、タイマー変数は設定されず、時間は再び10ミリ秒より長くなります。

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Untitled Document</title> 

<script> 
    var startTime = new Date().getTime(); 

    function barcodeScanCheck(){ 
    var input = document.getElementById("barcode").value; 

    if(input.length == 1){ 
     startTime = new Date().getTime(); 
    } 
    else if(input.length == 4){ 
     var elapsedTime = new Date().getTime() - startTime; 
     if(elapsedTime < 10){ 
     alert("Barcode"); 
     } 
     else{ 
     document.getElementById("barcode").value = ""; 
     alert("Keyboard"); 
     } 
    } 
    } 
</script> 

</head> 

<body> 

<form action="input.html" method="get"> 
<input id="barcode" name="barcode" type="text" onInput="barcodeScanCheck()"> 
<input name="submit" type="submit"> 
</form> 

</body> 
</html> 
+0

これはあなた自身の質問に対する回答ですか?そうでない場合は、これを修正して、あなたのコードをあなたの質問に入れてください。 –

+0

はい、私は解決策を探していて見つけられませんでした。私の解決策を取り上げた後、他の誰かに同様の要件を満たすために投稿しました。 – zefram

+0

あなたが質問と回答を同時に投稿したので、それは本当に混乱しました。 –

関連する問題