2011-10-11 8 views
0

onkeydown 또는 onkeypress를 사용하여 html 텍스트 필드 (입력 유형 = 텍스트)에 붙여진 문자를 두 개 이상 가져 오는 방법을 찾으려고합니다. onkeyup (작동)에 관심이 있으니 제발이 솔루션을 제안하지 마십시오. 또한 나는 Jquery에 관심이 없다. 나는 그것을 사용하는 것을 좋아하지 않는다. 모든 브라우저에서 작동하는 솔루션이 필요합니다.텍스트 필드에 수신되기 전에 onkeydown을 사용하여 문자열을 캡처하는 방법

한 캐릭터를 입력 할 때 이벤트의 문자를 사용하여 수행 할 수 있지만 지금까지는 붙여 넣기 (Ctrl + V) 또는 마우스로 문자 그룹을 가져올 수 없습니다.

자동 완료 결과를 보여주는 Facebook 검색 메뉴를 볼 수 있습니다. 이벤트에서 작동합니다 : onkeydown 및 onkeypress 및 손가락을 떼기 전에 결과를 얻는 것을 확인하고, 여러 문자 (한 문자 이상)를 붙여 넣으려고합니다. 손가락을 뽑기 전에 결과를 얻는다. 어떻게? Onkeypress와 onkeydown은 텍스트 필드에 텍스트가 추가되기 전에 발생하기 때문에 붙여 넣기 나 입력하는 첫 번째 것을 표시하지 않습니다.

<input type="text" id="targetTextField" onkeydown="CapturePastedString(this.id)" /> 



<script> 
function CapturePastedString(id){ 

var targetTextField=document.getElementById(id); 

// below I need to capture the pasted string like: 
var pasted_string= function(){.....} 

targetTextField.value=pasted_string; 

} 
</script> 

어떤 도움이 오랜 시간 이후로 나는 노력하고 있기 때문에, 너무 감사 할 것입니다하지만 아직 해결책을 찾을 수 없습니다

당신은 내가 더 원하는 것을 이해하려면, 아래에있는 내 코드를 확인하시기 바랍니다.

+0

[onpaste 이벤트] (http://help.dottoro.com/ljuimtmq.php) – malificent

+0

을 확인하십시오. 그러나 모든 브라우저와 호환되지는 않습니다. (해결책 일 수는 없습니다. 나는 이미 그것을 확인했다.이 문제에 대한 비밀은 누구에게 말해 줄 수 있나? 백 시간 동안 수색을하고 개발자를 부른 후에 해결책을 찾지 못했습니까? !!!! – moderns

+0

제안 건 사람 이요? ! – moderns

답변

0

작동하는 onkeydown 처리기를 사용해보십시오. 거기에서 keyCode를 가져온 다음 키를 얻을 수 있습니다. 키보드의 모든 문자가 수도 있기 때문에 당신은 또한 대문자를 얻을 것이라고

<input type="text" value="" onkeydown="alert(String.fromCharCode(event.keyCode));"/>

참고. 위의 코드는 눌린 키를 표시합니다