是否可以在只接受粘贴输入的表单上有HTML输入?限制HTML输入只允许粘贴
作为我们注册过程的一部分,最终用户需要在基本的HTML输入表单中输入20个字符的标识标记。理想情况下,用户只需将该令牌复制/粘贴到适当的字段中即可。我们不希望用户手动输入,因为他们很可能会输错字母,我们没有任何可靠的方法来验证输入。
令牌来自桌面软件,需要粘贴到已经打开的网页(即他们从中下载软件的地方)。因此,可点击链接不是可行的选择。
有没有办法做到这一点,例如通过JavaScript?谢谢。
我的解决方案,改编自SimplePi的回答是:
<html>
<body>
<script type="text/javascript">
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.charCode || theEvent.which;
if(key >= 32 && (theEvent.ctrlKey === undefined || !theEvent.ctrlKey)) {
if(theEvent.preventDefault) theEvent.preventDefault();
else theEvent.returnValue = false;
}
}
</script>
<span>Textbox name</span> <br />
<input type="text" onkeypress='validate(event)' value=""/>
</body>
</html>
这工作在一些,但不是所有的浏览器。 Firefox上的Mac是我发现的唯一罪犯 - firefox中一般报告ctrl-v
与v
完全相同,但在窗口上theEvent.ctrlKey
成员可以区分这两者。在mac上做同样的事情显然需要keydown/up来检查cmd是否被按下。这是可行的,但不包含在此代码中,以防其他人希望使用此代码。
我敢肯定这是可能,但这将是一个非常糟糕的用户体验。大多数用户无论如何都会复制/粘贴令牌ID,所以为什么要为最低用户付出额外的努力? – stackErr
您必须同时允许键盘快捷方式粘贴(可能因操作系统而异)和右键单击上下文菜单粘贴。另外,如何阻止他们粘贴与您的标记完全不同的东西? – ajp15243
他们从哪里获取令牌? –