如何仅防止页面上按键的特定默认操作?
How do I prevent only specific default actions of key press on a page?
我只想阻止网页上的某些按键操作。特别是退格键。通常,我会做这样的事情:
function keyPress(ev) {
if(ev.keyCode === 8) {
ev.preventDefault();
}
// do cool stuff here
}
$(document).keydown(keyPress);
该代码阻止退格键执行的所有默认操作。我想阻止它导航到最后一页,但我想允许它删除文本字段中的字符。如何只防止导航而不防止文本操作?
对于您提到的特定情况,您可以只检查用户是否聚焦了文本字段,如果是,则不阻止默认。
function keyPress(ev) {
var targetElTag = document.activeElement.tagName;
if (ev.keyCode === 8 && targetElTag !== 'TEXTAREA') {
ev.preventDefault();
}
}
您还希望包括您希望退格键起作用的任何其他可聚焦元素。
我只想阻止网页上的某些按键操作。特别是退格键。通常,我会做这样的事情:
function keyPress(ev) {
if(ev.keyCode === 8) {
ev.preventDefault();
}
// do cool stuff here
}
$(document).keydown(keyPress);
该代码阻止退格键执行的所有默认操作。我想阻止它导航到最后一页,但我想允许它删除文本字段中的字符。如何只防止导航而不防止文本操作?
对于您提到的特定情况,您可以只检查用户是否聚焦了文本字段,如果是,则不阻止默认。
function keyPress(ev) {
var targetElTag = document.activeElement.tagName;
if (ev.keyCode === 8 && targetElTag !== 'TEXTAREA') {
ev.preventDefault();
}
}
您还希望包括您希望退格键起作用的任何其他可聚焦元素。