文本区域应该只接受数字,逗号,箭头键(键盘),空格,Ctrl + c,Ctrl + v,Ctrl + x,Ctrl + a,它应该只在javascript中。 以下是我的代码:
<textarea onkeypress=' return validateKey(event)'></textarea>
<body>
<script type="text/javascript">
function validateKey(e){
var key= e.keyCode ? e.keyCode : e.charCode;
console.log(key);
if(key>47 && key <=57 || key>36 && key <=40 || key===44|| key===32 ||x|| key===8 || x|| key ===118 || key==99 || key === 120){
return true;
}
return false;
}
</script>
</body>
它适用于chrome,但在firefox中,它需要相同的键代码'a'和ctrl + a或cmd + a(mac)等等,用于剪切,粘贴,复制。
有什么办法可以对待ctrl + a和'a'是两个差异字符。
答案 0 :(得分:0)
只需在您的其他if (!e.ctrlKey)
之外添加if
即可。如果按下控制键,这将阻止它运行。
答案 1 :(得分:0)
我找到了验证的方法
<!DOCTYPE html>
<html>
<head>
<title>Task</title>
</head>
<body>
<textarea style="width: 300px;height: 100px" onkeypress=' return validateKey(event)'></textarea>
<script type="text/javascript">
function validateKey(e) {
var key = e.keyCode ? e.keyCode : e.charCode;
console.log(key);
if (key > 47 && key <= 57||(key > 36 && key <= 40) && !e.shiftKey || key === 44 || key == 17 || key === 32 || key === 8 || (key == 97 && e.ctrlKey) || (key == 120 && e.ctrlKey) || (key == 99 && e.ctrlKey) || (key == 118 && e.ctrlKey) || e.metaKey) {
return true;
}
return false;
}
</script>
</body>
</html>