【发布时间】:2017-06-09 02:10:03
【问题描述】:
我需要强制将条形码扫描仪输入网页表单上的文本字段,我必须阻止键盘或粘贴输入。这适用于个人用户随身携带自己的条形码卡的制造环境,他们不允许预订其他人的工作,那是作弊!他们扫描的代码是他们的员工编号,始终为 4 个字符长。条形码扫描仪是 USB 的,就像一个键盘,依次输入每个单独的字符。
【问题讨论】:
标签: javascript html forms barcode
我需要强制将条形码扫描仪输入网页表单上的文本字段,我必须阻止键盘或粘贴输入。这适用于个人用户随身携带自己的条形码卡的制造环境,他们不允许预订其他人的工作,那是作弊!他们扫描的代码是他们的员工编号,始终为 4 个字符长。条形码扫描仪是 USB 的,就像一个键盘,依次输入每个单独的字符。
【问题讨论】:
标签: javascript html forms barcode
我想出的代码检测字符 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>
【讨论】: