我有一个 HTML 输入字段,例如:
<input type="text" name="TextBox1" id="TextBox1">
我想防止使用键盘输入和使用鼠标粘贴,同时只允许输入来自 USB 条形码阅读器的输入。 我尝试使用:
$( document ).ready(function() {
$('#TextBox1').keydown(function(e) {
if ($(e.target).is('input, textarea')) {
e.preventDefault();
}
});
});
但它会阻止来自每个来源的输入,包括 USB 条形码扫描器。
有什么建议吗?可能吗?
最佳答案
使用条形码扫描器时,您可以预期该字段会在几百毫秒内填满,而人类至少需要一两秒才能输入 10 个数字。当输入第一个数字时,您可以设置超时,例如300 毫秒。如果所需的值长度未达到 300ms,清场即可。
这并不能阻止有人高速输入随机数字进行欺诈,但毕竟,永远不要相信用户数据。
编辑:手边没有代码片段,但伪代码可能是
on keydown
if(value.length < 2)
timeout = now+300
elseif(now > timeout and value-legth < required legth)
value=''
关于javascript - 防止用户在文本字段中键入和粘贴,只允许从 USB 条码阅读器读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20466073/