首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >防止用户在文本字段中键入和粘贴,并仅允许从USB条形码读取器读取

防止用户在文本字段中键入和粘贴,并仅允许从USB条形码读取器读取
EN

Stack Overflow用户
提问于 2013-12-09 16:19:44
回答 2查看 1.1K关注 0票数 3

我有一个HTML输入字段,如下所示

代码语言:javascript
代码运行次数:0
运行
复制
<input type="text" name="TextBox1" id="TextBox1">

我想防止使用键盘打字和使用鼠标粘贴,同时只允许从USB条形码阅读器输入。我尝试使用:

代码语言:javascript
代码运行次数:0
运行
复制
$( document ).ready(function() {        
    $('#TextBox1').keydown(function(e) { 
        if ($(e.target).is('input, textarea')) {
           e.preventDefault();
        }                  
    });    
});

但它将阻止所有来源的输入,包括USB条形码扫描仪。

有什么建议吗?有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2013-12-09 16:28:02

当使用条形码扫描仪时,您可以期望在几百毫秒内填满该字段,而人类至少需要一到两秒钟来键入10位数字。当输入第一个数字时,您可以设置超时时间,例如300ms。如果所需的值长度不是300ms内的rached,只需清除该字段即可。

这并不能防止有人以高速欺骗性地输入随机数字,但毕竟,永远不要相信用户数据。

编辑:手头没有代码片段,但伪代码可能是

代码语言:javascript
代码运行次数:0
运行
复制
on keydown
    if(value.length < 2)
        timeout = now+300
    elseif(now > timeout and value-legth < required legth)
        value=''
票数 2
EN

Stack Overflow用户

发布于 2013-12-09 16:26:21

我不确定条形码扫描器会引发什么事件,但你有没有尝试过:

代码语言:javascript
代码运行次数:0
运行
复制
<input type="text" name="TextBox1" id="TextBox1" onkeydown="return false;">
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20466073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档