사용자가 숫자 키패드에서 도트 키를 눌렀는지 여부를 감지해야합니다. 나는이 초안을 작성했다 :숫자 키패드에서 십진수 (점) 키 감지
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript"><!--
(function($){
var knownCodes = [
[110, 46], // Firefox, IE, Chrome
[78, 46] // Opera
];
var pressedCodes = [null, null];
$.fn.comma = function(){
this.live("keydown", function(e){
pressedCodes = [e.which, null];
}).live("keypress", function(e){
pressedCodes[1] = e.which;
for(var i=0, len=knownCodes.length; i<len; i++){
if(pressedCodes[0]==knownCodes[i][0] && pressedCodes[1]==knownCodes[i][1]){
$("#log").append("<li>Decimal key detected</li>");
break;
}
}
});
return this;
};
$(function(){
$('<ol id="log"></ol>').appendTo("body");
});
})(jQuery);
jQuery(function($){
$(".comma input:text, .comma textarea").css("border", "1px solid black").comma();
});
//--></script>
</head>
<body>
<form action="" method="get" class="comma" size="20">
<p><input type="text"></p>
<p><textarea rows="3" cols="30"></textarea></p>
</form>
</body>
</html>
그러나 스페인어 키보드가있는 Windows XP 상자에서만 테스트 할 수있다. 내 질문 :
e.which
에서 읽기가 안전합니까? 적어도 하나의 브라우저에서e.keyCode
과e.charCode
이 모두undefined
을 반환하기 때문에 사용하고 있습니다.운영체제가 이러한 숫자 코드에 어떤 방식으로 영향을 줍니까?
이러한 코드는 키보드 레이아웃에 따라 다릅니 까?
배경 정보 : I 그래서 난 내 자신을 쓰고 있어요 remap numeric keypad에 jQuery 플러그인을 찾을 수 없습니다.
업데이트
정확한 요구 사항을 설명합니다. 숫자 키패드가있는 스페인어 키보드에는 .
키가 있습니다. 그러나 스페인어의 소수 구분 기호는 ,
입니다. 따라서 웹 응용 프로그램에 숫자를 입력하는 것은 짜증나게됩니다. MS Excel과 같은 일부 데스크톱 응용 프로그램은이 키를 다시 매핑하여 쉼표를 삽입합니다. 나는 그것을 모방하려고 노력하고있다.
여기에 게시하는 데 사용한 약간의 스크립트를 적용했습니다. 그건 내가 knownCodes 배열의 값을 가지고 방법은 다음과 같습니다
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript"><!--
(function($){
$.fn.showKeyCodes = function(){
var log = function(e){
$("<li></li>").text(e.type + "(): [keyCode, charCode, which]=[" + e.keyCode + ", " + e.charCode + ", " + e.which + "]").appendTo("#log");
}
this.live("keydown", function(e){
log(e);
}).live("keypress", function(e){
log(e);
}).live("keyup", function(e){
log(e);
});
return this;
};
$(function(){
$('<ol id="log"></ol>').appendTo("body");
});
})(jQuery);
jQuery(function($){
$(".showKeyCodes input:text, .showKeyCodes textarea").css("border", "1px solid black").showKeyCodes();
});
//--></script>
</head>
<body>
<form action="" method="get" class="showKeyCodes" size="20">
<p><input type="text"></p>
<p><textarea rows="3" cols="30"></textarea></p>
</form>
</body>
</html>
유형 당신의 숫자 키패드에서 .
키 (또는 키는 무엇이든 당신의 키보드 레이아웃에 대체)와 알파벳 키패드에 같은 문자에 해당하는 키 . 목표는 첫 번째 클릭을 감지하고 두 번째 클릭을 감지하는 것입니다.
사이드 노트 : 내 키보드가없는 한, 당신은 일을이 키를 필요로하지 않는 희망 숫자 키패드 : http://www.apple.com/keyboard/ –
스페인어로 올바른 소수점 구분 기호 인 코마를 삽입하고 싶습니다. 키패드가 없다면 문제를 해결할 필요가 없습니다. –