我正在开发c#网络应用程序,我想让用户使用num-lock作为我的应用程序切换一些选项的短键,但不希望它禁用num-pad。
我可以使用JavaScript实现这一点吗?
编辑:我想做的是当用户按下键(然后关灯)时,用户仍然可以将键号输入到输入字段。
例如。按'Num-lock‘键购买/按下'-’然后输入价格
发布于 2015-03-27 02:48:50
这是我要找的最接近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('');
}
});发布于 2015-03-25 09:49:33
这个答案执行一个Key按下的检查,并自动处理所需的操作!
JS代码的主要部分是:
var keycode = (event.keyCode ? event.keyCode : event.which);
$('#keydownCode').html(keycode);这是它的演示!
工作演示
编辑:
在解释了“禁用”NUM lock之后;即,如果NUM锁是上的,则拒绝击键,我已经创建了下面的快速代码!
当NUM锁关闭时,它不接受值!
又一次演示
发布于 2015-03-25 08:54:29
看来,NumLock键(我对此相当惊讶)在按键上使用了密钥码144,所以您可以将其作为“热键”使用。
参见此jsFiddle
$(function(){
$("input").keydown(function(e){
alert(e.which);
});
});如果您希望将其作为“使用它在任何地方的热键”,您将希望将您的按键处理程序绑定到主体或文档,而不是特定的元素。
进一步注释re:禁用numlock的使用(但仍然希望使用num )。( a)你不能--这是一件硬件的事情,而b)你必须质疑你为什么要这样做.如果可以的话,当用户离开浏览器(在你不知道的情况下切换numlock )时会发生什么--建议重新考虑一下。(对不起)
https://stackoverflow.com/questions/29250857
复制相似问题