Dường như với tôi như bạn đã trả lời câu hỏi của riêng bạn. Nếu bạn phát hiện phím SHIFT, bạn có thể dễ dàng phân biệt giữa chữ hoa và chữ thường:
if(e.shiftKey){
alert("You pressed a CAPITAL letter with the code " + e.keyCode);
}else{
alert("You pressed a LOWERCASE letter with the code " + e.keyCode);
}
Hoặc tôi hiểu nhầm câu hỏi của bạn?
Cập nhật: mã trường hợp ASCII Upper có thể dễ dàng được chuyển đổi sang hạ mã trường hợp ASCII bằng cách thêm 32, vì vậy tất cả bạn cần làm là:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function showChar(e){
if(e.keyCode!=16){ // If the pressed key is anything other than SHIFT
if(e.keyCode >= 65 && e.keyCode <= 90){ // If the key is a letter
if(e.shiftKey){ // If the SHIFT key is down, return the ASCII code for the capital letter
alert("ASCII Code: "+e.keyCode);
}else{ // If the SHIFT key is not down, convert to the ASCII code for the lowecase letter
alert("ASCII Code: "+(e.keyCode+32));
}
}else{
alert("ASCII Code (non-letter): "+e.keyCode);
}
}
}
</script>
</head>
<body onkeydown="showChar(event);">
<p>Press any character key, with or without holding down
the SHIFT key.<br /></p>
</body>
</html>
Cập nhật 2: Hãy thử điều này:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function showChar(e){
if(e.keyCode!=16){ // If the pressed key is anything other than SHIFT
c = String.fromCharCode(e.keyCode);
if(e.shiftKey){ // If the SHIFT key is down, return the ASCII code for the capital letter
alert("ASCII Code: "+e.keyCode+" Character: "+c);
}else{ // If the SHIFT key is not down, convert to the ASCII code for the lowecase letter
c = c.toLowerCase(c);
alert("ASCII Code: "+c.charCodeAt(0)+" Character: "+c);
}
}
}
</script>
</head>
<body onkeydown="showChar(event);">
<p>Press any character key, with or without holding down
the SHIFT key.<br /></p>
</body>
</html>
Nhưng không nên thay đổi keyCode, quá? Tôi cần phải nhận được sự khác biệt từ keyCode hoặc cái gì khác như một giá trị. Trong cả hai ví dụ, mã khóa đều giống nhau. Tôi tìm cách cung cấp một mã phím khác nhau cho chữ A và chữ thường được nhấn. –
Hãy xem bản cập nhật cho câu trả lời của tôi ở trên. Tôi nghĩ đó là những gì bạn đang tìm kiếm. – Computerish
Cảm ơn điều đó khá gần với nhu cầu của tôi. Nhưng làm thế nào tôi có thể thêm hỗ trợ cho UTF-8? Giả sử vốn Ü và chữ hoa nhỏ ü ném thông báo "Mã ASCII (không phải chữ cái)". Có thể phân biệt các latter của Unicode captial từ các chữ cái viết hoa nhỏ trong onkeydown hay không. –