Jquery禁用键盘按键

8
使用jQuery是否可以禁用特定的键盘按键(例如星号或字符串)?
6个回答

12

你不能直接禁用按键,但你可以使用jQuery捕获它并覆盖其操作(返回false)。下面的示例捕获回车键。只需将13更改为你需要禁用的任何按键代码。

$("input").keypress(function (evt) {

  var keycode = evt.charCode || evt.keyCode;
  if (keycode  == 13) { //Enter key's keycode
    return false;
  }
});

1
刚刚意识到会捕获输入字段。如果要在页面更改时禁用,请将“input”更改为“body”。 - detheridge02

6

我不得不禁用除了F11和ESC之外的所有键。所以我这样做。希望这可以帮助到某些人。:)

$(document).on('keydown',function(e)
{ 
    var key = e.charCode || e.keyCode;
    if(key == 122 || key == 27 )
        {}
    else
        e.preventDefault();
});

这很有用,但是在PrtSc屏幕上无法工作,实际上我想在别人无法保存我的页面甚至无法截图时使用它,如果可以请帮忙。 - sunil

1

处理 onKeyDown,然后在其上调用 preventDefault


1
我可以想到类似这样的代码:
// Bind this keypress function to the html (not sure about this) or body tags of your page
$("body").keypress(function (evt) {
//Determine where the character code is coming from
var charCode = evt.charCode || evt.keyCode;

if (charCode  == 13) { //Enter key's keycode, could be any other key
return false;
}
});

通过返回 false,你告诉浏览器不允许按键事件。


0
只需将 OnKeyUp,Down-EventListener 添加到您的 HTML 页面中,如果按下的键是您想要忽略的键,只需调用 preventDefault 函数即可。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接