我有一个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条形码扫描仪。
有什么建议吗?有可能吗?
发布于 2013-12-09 16:28:02
当使用条形码扫描仪时,您可以期望在几百毫秒内填满该字段,而人类至少需要一到两秒钟来键入10位数字。当输入第一个数字时,您可以设置超时时间,例如300ms。如果所需的值长度不是300ms内的rached,只需清除该字段即可。
这并不能防止有人以高速欺骗性地输入随机数字,但毕竟,永远不要相信用户数据。
编辑:手头没有代码片段,但伪代码可能是
on keydown
if(value.length < 2)
timeout = now+300
elseif(now > timeout and value-legth < required legth)
value=''
发布于 2013-12-09 16:26:21
我不确定条形码扫描器会引发什么事件,但你有没有尝试过:
<input type="text" name="TextBox1" id="TextBox1" onkeydown="return false;">
https://stackoverflow.com/questions/20466073
复制相似问题