2013-05-31 8 views
1

키보드와 OS의 언어와 문화에 관계없이/(슬래시) 기호의 javascript 키 코드는 무엇입니까? 영어 키보드에서 슬래시는 숫자 키와 별개의 키에 있으며 키 코드는 191입니다. 그러나 스페인어 키보드에서는 문자가 같은 키의 숫자 7과 함께 있고 그것을 입력하기 위해 Shift + 7이지만 그 조합은 키 코드 191을 초래하지 않습니다!키보드의 숫자 키에있는 기호의 자바 스크립트 키 코드 받기

나는 55 문자 7의 키 코드입니다 if (event.shiftKey && event.keyCode == 55) {}을 시도하고 그것은 작동하지만, 영어 키보드로 if (event.shiftKey && event.keyCode == 55) {} 조건은 나를 & (앰퍼샌드) 기호에 입력 할 수 있습니다.

웹 페이지에 입력란에 하나의 키만 눌러야하는 것과 관계없이 사용하는 키보드 나 OS의 언어와 상관없이 사용자가 숫자와 슬래시를 입력 할 수있게하려는 텍스트 상자가 있습니다. 슬래시를 사용하거나 SHIFT + 숫자 키 또는 다른 유형의 조합을 사용해야합니다. 어떻게해야합니까? 키 누름을 방지하는 대신

답변

0

는 :

<textarea oninput="validate(this,/([^\/\d])/g)" ></textarea> 
<script> 
function validate(inp,reg) 
{ 
    //([^\/\d]) translates to: 
    //"remove everything that is not a/or a number" 
    var s = inp.selectionStart; 
    inp.value = inp.value.replace(reg,""); 
    inp.selectionStart = s;inp.selectionEnd = s;//reset caret position 
} 
</script> 
0

대신를 keyDown의 키를 누를 청취하여이 작업을 수행 할 수 있습니다, 이것은 당신에게 누를 실제 키와 해당 ASCII 코드가 포함 된 이벤트 객체를 제공 할 것입니다.

// Vanilla JavaScript 
document.body.addEventListener('keypress', function(event) {  
    console.log(event);  
}); 

// jQuery 
$('body').on('keypress', function (event) { 
    console.log(event); 
}; 

enter image description here