首先想到的就是禁用文本框的onkeydown事件了:
<input type="text" onkeydown="return false">这样文本框不能输入任何字符,可以用鼠标右键菜单的“粘贴”来粘贴复制的字符,但这样做有一个缺点:粘贴的快捷键也被禁用了,无法使用Ctrl+V来粘贴值。所以我们改造一下代码:
<input type="text" id="demo"> document.getElementById('demo').onkeydown = function(event) {var evt = event || window.event
if (evt.ctrlKey && evt.keyCode == 86) { // ctrl + v
console.log('粘贴快捷键按下')
} else {
return false
}
}
至此以上代码已基本满足预期要求,但你会发现粘贴进去的内容没办法删除(因为backspace和delete键也被禁用了),所以最终的代码应该是这样的:
document.getElementById('demo').onkeydown = function(event) {var evt = event || window.event
console.log(evt.keyCode)
if (evt.ctrlKey && evt.keyCode == 86) { // ctrl + v
console.log('粘贴快捷键按下')
} else if (evt.keyCode == 8 || evt.keyCode == 46) { // backspace和delete键
} else {
return false
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)