如何禁用内部任何内容的退格键<;车身>;除了输入和文本区域,是否使用jQuery?
我想禁用除TextBox和TextArea之外的任何元素的退格键(keycode 8) 以下是我尝试但未成功的结果:如何禁用内部任何内容的退格键<;车身>;除了输入和文本区域,是否使用jQuery?,jquery,keypress,keydown,Jquery,Keypress,Keydown,我想禁用除TextBox和TextArea之外的任何元素的退格键(keycode 8) 以下是我尝试但未成功的结果: $(":not(input, textarea)").keydown(function(event) { if (event.keyCode == 8) { event.preventDefault(); return false; } }); 这样做的目的是避免用户在没有聚焦于任何文本框或文本区域时意外地点击退格键 有什么想
$(":not(input, textarea)").keydown(function(event) {
if (event.keyCode == 8) {
event.preventDefault();
return false;
}
});
这样做的目的是避免用户在没有聚焦于任何文本框或文本区域时意外地点击退格键
有什么想法吗?您还想禁用只读文本区域或文本框 如果文本区域或文本框为只读且具有焦点,则单击backspace也会导致您离开页面。这就是为什么您还应该检查readonly 我想你是在试图阻止背部功能 编辑: 您还可以将侦听器附加到主体。 EDIT2:您也需要防止对checbox执行操作(这是输入) 最简单的解决方案(涵盖所有特殊情况)是:
你为什么认为这是一个需要解决的问题?backspace/delete键位于键盘的上角,专门用来防止意外击中。你想做什么?我知道Chrome将backspace解释为“Back”,我觉得这很烦人。这可以通过BackspaceMeansBackspace浏览器扩展来避免。
$("*:not(input, textarea)").keydown(function(event) {
if (event.keyCode == 8) {
event.preventDefault();
return false;
}
});
$("body").not("input,textarea").keydown(function(event) {
if (event.keyCode == 8) {
event.preventDefault();
return false;
}
});
$(document).keydown(function (e) {
var element = e.target.nodeName.toLowerCase();
if ((element != 'input' && element != 'textarea') || $(e.target).attr("readonly") || (e.target.getAttribute("type") ==="checkbox")) {
if (e.keyCode === 8) {
return false;
}
}
});
$(document).keydown(function(e) {
if (e.which == 8 && !$(':focus').length) {
e.preventDefault();
}
});