我可以使用JavaScript启用/禁用客户端num-lock吗?

时间:2015-03-25 08:37:28

标签: javascript jquery

我正在开发c#web应用程序,我想让用户使用num-lock作为短键来切换我的应用程序上的一些选项,但不要让它禁用数字键盘。

我可以使用JavaScript实现这一目标吗?

编辑:我想要做的是当用户按下键(然后灯关闭)但用户仍然可以键入数字输入字段

实施例。按下Num-lock'购买/按' - '卖掉然后输入价格

3 个答案:

答案 0 :(得分:1)

嗯,这个答案会检查按下Key并按位处理您所需的操作!

JS代码的主要部分是:

var keycode = (event.keyCode ? event.keyCode : event.which);
$('#keydownCode').html(keycode);

这是演示吧!

Working Demo

修改:

解释"禁用" NUM lock;即如果NUM LOCK OFF ,则拒绝按键,我已在快速代码下面创建了!

当NUM LOCK为OFF时,它不接受值!

Another Demo

答案 1 :(得分:0)

嗯 - 看起来NumLock键(我很惊讶)在keydown上使用键码144 - 所以你可以把它拿起并用作热键"。

请参阅此jsFiddle

$(function(){
    $("input").keydown(function(e){
        alert(e.which);
    });
});

如果你想把它作为一个"在任何地方使用热键"您希望将keydown处理程序绑定到正文或文档而不是特定元素。

进一步评论re:禁用numlock(但仍想使用num pad)。 a)你不能 - 它是硬件的东西,而且b)你必须质疑为什么你会想要这样做......如果可以的话,当用户去的时候会发生什么远离浏览器(并在不知情的情况下切换numlock) - 建议重新思考。 (对不起)

答案 2 :(得分:0)

这是我最接近jsFiddle

的内容
 $('#textbox').keydown(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    $('#keydownCode').html(keycode);


 if(keycode == 144){
    $('#Typoef').html('It is a Sell');
     //perform Sell operation here
 }
 else if(keycode == 109){
    $('#Typoef').html('It is a Purchase');
     //perform Purchase operation here
 }
 else if(keycode == 35){
    $('#textbox').val($('#textbox').val()+"1");
     e.preventDefault();
 }
 else if(keycode == 40){
    $('#textbox').val($('#textbox').val()+"2");
     e.preventDefault();
 }
 else if(keycode == 34){
    $('#textbox').val($('#textbox').val()+"3");
     e.preventDefault();     
 }
 else if(keycode == 37){
     $('#textbox').val($('#textbox').val()+"4");
     e.preventDefault(); 
 }
 else if(keycode == 12){
    $('#textbox').val($('#textbox').val()+"5");
     e.preventDefault();     
 }
 else if(keycode == 39){
    $('#textbox').val($('#textbox').val()+"6");
     e.preventDefault();     
 }
 else if(keycode == 36){
    $('#textbox').val($('#textbox').val()+"7");
     e.preventDefault();     
 }
 else if(keycode == 38){
    $('#textbox').val($('#textbox').val()+"8");
     e.preventDefault();     
 }else if(keycode == 33){
    $('#textbox').val($('#textbox').val()+"9");
     e.preventDefault();     
 }
 else if(keycode == 45){
    $('#textbox').val($('#textbox').val()+"0");
     e.preventDefault();     
 }
 else{
     $('#Typoef').html('');
 }
});