我正在尝试找到&符号和下划线的键码。我不应该允许我的用户允许输入&符号和下划线。我正在看一个列表,它提到55作为7&的密钥代码。 &符号,另一个列表说55是7的键码。因此,如果我的用户点击键码55时返回false,我不允许用户使用7,这不是必需的。如何找到&符号和下划线的密钥代码?
我只是尝试了55,但它只是给了我警报7而不是&符号!
function noenter(e)
{
evt = e || window.event;
var keyPressed = evt.which || evt.keyCode;
if(keyPressed==13)
{
return false;
}
else if(evt.shiftKey && keyPressed===55)
// else if(keyPressed==59 || keyPressed==38 || keyPressed==58 || keyPressed==95)
{
alert("no special characters");
return false;
}
}
答案 0 :(得分:8)
使用keypress
事件并直接测试角色,如下所示。不要乱用密码:它们会因不同的键盘类型和文化而异。字符代码不会。
var el = document.getElementById("your_input");
el.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (charStr == "&" || charStr == "_") {
alert(charStr);
return false;
}
};
答案 1 :(得分:2)
检查shift键是否关闭:
//e = Event
(e.shiftKey && e.keyCode === 55) //returns true if Shift-7 is pressed
答案 2 :(得分:0)
答案 3 :(得分:0)
我使用Unicode密钥标识符解决了它。下面是我使用jQuery的实现:
function parseKey(key) {
return parseInt(key.substring(2), 10);
}
$inputs.bind('keydown', function(e) {
var c=parseKey(e.originalEvent.keyIdentifier);
//allow only numbers and backspace
if ((c<30 || c>39) && e.which!=8)
e.preventDefault();
if (e.which == 13)
$(this).blur();
});