是否可以在只接受粘贴输入的表单上输入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>
Run Code Online (Sandbox Code Playgroud)
这适用于某些浏览器,但不是所有浏览器.Mac上的Firefox是我发现的唯一一个攻击者 - 一般来说firefox报告ctrl-v的完全相同v,但在Windows上,theEvent.ctrlKey成员可以区分两者.在mac上执行相同操作显然需要keydown/up来检查cmd是否被按下.这是可行的,但不包含在此代码中,以防其他人希望使用此代码.
我正在尝试编写一个批处理脚本,提示用户输入一个目录并将多个文件从该目录复制到另一个目录。为此,我有一个简单的循环,使用标签和set /p输入。问题是,尝试通过按下来摆脱这个循环ctrl+c并不总是有效。
:checkloop
@set /p READMEPATH=Please enter the location of readme.txt:
@if not exist "%READMEPATH%\README.txt" goto somethingmissing
@goto allfound
:somethingmissing
@echo Can't find readme in directory "%READMEPATH%"
@goto checkloop
:allfound
@echo Okay, found
Run Code Online (Sandbox Code Playgroud)
示例输出类似于
Please enter the location of readme.txt:
Can't find readme in directory ""
Please enter the location of readme.txt: ^CCan't find readme in directory ""
Please enter the location of readme.txt: ^CCan't find readme in directory ""
Please enter the location of readme.txt: …Run Code Online (Sandbox Code Playgroud)