我正在开发c#web应用程序,我想让用户使用num-lock作为短键来切换我的应用程序上的一些选项,但不要让它禁用数字键盘。
我可以使用JavaScript实现这一目标吗?
编辑:我想要做的是当用户按下键(然后灯关闭)但用户仍然可以键入数字输入字段
实施例。按下Num-lock'购买/按' - '卖掉然后输入价格
答案 0 :(得分:1)
嗯,这个答案会检查按下Key
并按位处理您所需的操作!
JS代码的主要部分是:
var keycode = (event.keyCode ? event.keyCode : event.which);
$('#keydownCode').html(keycode);
这是演示吧!
修改:
解释"禁用" NUM lock
;即如果NUM LOCK OFF ,则拒绝按键,我已在快速代码下面创建了!
当NUM LOCK为OFF时,它不接受值!
答案 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('');
}
});