질문 : 중국 입력 방법에 텍스트를 입력 할 때 Enter 키를 누릅니다. 바인딩 키업 이벤트는 입력 메소드의 영어 텍스트를 텍스트 상자에 입력하고 보내기 버튼을 직접 터치합니다.
키보드 이벤트 :
키를 누르거나 릴리스 할 때 각 브라우저에서 3 개의 키보드 이벤트가 트리거 될 수 있습니다.
키 다운
키 프레스
키 업
키 다운 이벤트는 키를 눌렀을 때 발생하면 키 프레스가 트리거됩니다. 키가 릴리스되면 키 업 이벤트가 트리거됩니다.
중국 입력 방법 :
FIRFOX : 입력 트리거 키 다운, 입력 트리거 확인 확인을 입력하십시오
Chrome : 입력 키 다운 및 키 업을 트리거하고 입력이 키 다운을 트리거하는지 확인하십시오.
IE : 입력 트리거 키 다운 및 키 업, 입력을 확인하여 입력 트리거 키 다운, 키 업
SAFARI : 입력 트리거 키 다운 및 키업을 입력하여 입력 트리거 키 다운, 키 업을 확인하십시오.
OPERA : 입력 트리거 키 다운 및 키업을 입력하여 입력 트리거 키 다운, 키업을 확인하십시오.
입력 및 Textarea에서 중국어 입력 방법 : 키 프레스 이벤트가 트리거되지 않습니다.
Keypress 이벤트 : 중국 입력 방법에 대한 지원은 좋지 않으며 중국 입력에 응답 할 수 없습니다. 시스템 기능 키에 응답 할 수 없습니다
HTML 코드 :
<textArea name = ""id = "텍스트"cols = "30"rows = "5"> </textRea> <script type = "text/javaScript"> var text = document.getElementById ( 'text'); text.onkeydown = function (e) {console.log ( 'keydown'); if (e.keyCode == 13) {console.log ( 'keydown enth send'); } console.log ( 'value', text.value); } text.onkeypress = function (e) {console.log ( 'keypress'); console.log ( 'value', text.value); } text.onkeyup = function (e) {console.log ( 'keyup'); if (e.keyCode == 13) {console.log ( 'keyup enter send'); } console.log ( 'value', text.value); } </스크립트>영어 입력 방법 :
위의 그림은 결론을 보여줍니다.
텍스트가 입력 상자에 입력되지 않은 경우 Keydown 및 Keypress가 발생합니다. 텍스트 상자가 KeyDown 및 Keypress 이벤트에서 출력 인 경우 키보드 이벤트의 텍스트 상자의 텍스트가 트리거됩니다.
KeyUp 이벤트가 트리거되면 전체 키보드 이벤트에서 텍스트를 입력하는 작업이 완료되었으며, 키보드 이벤트가 트리거 된 후 텍스트 내용이 얻어진다는 것입니다.
중국 입력 방법 : [키 프레스 이벤트 없음]
Enter 키를 눌렀을 때 다음을 확인한 후
중국 입력 방법은 입력이 결정되지 않을 때 Enter 키를 누릅니다. 키 다운 및 키 업의 효과는 다릅니다. 키 다운은 사전 설정 입력 메소드 이벤트를 트리거하지 않습니다.
답변:
대부분의 입력 메소드는 키 다운에서 입력 프로세스를 완료하므로 입력 제출이 KeyUP 이벤트에 있으면 입력 키가 입력 키로 직접 전송되고 입력 키가 제출되어 충돌 문제가 발생합니다.
방법 : 입력 제출 이벤트를 키 다운으로 변경하십시오. 이 시점에서 키 다운 이벤트가 발생하면 입력 메소드에 있으며 제출 상자의 전송 이벤트에서는 발생하지 않아 충돌이 해결됩니다.
몇 가지 팁 :
키 다운이 트리거 된 후 KeyUp이 트리거되지 않을 수 있습니다. 키 다운을 누르고 마우스를 드래그하면 키 업 이벤트가 트리거되지 않습니다.
Keypress는 주로 F1-12, Shift, Alt, Ctrl, insert, home, pgup, delete, end, pgdn, scrolllock, pause, numlock, {menu key}, { start key } 및 화살표 키를 제외한 ANSI 문자를 캡처하는 데 사용됩니다.
Keydown 및 Keyup은 일반적으로 Prscrn을 제외한 키보드의 모든 키를 캡처 할 수 있습니다.
Keypress는 단일 문자 만 캡처 할 수 있습니다
Keydown 및 KeyUp은 키 조합을 캡처 할 수 있습니다.
Keypress는 단일 캐릭터의 경우를 포착합니다
Keydown과 Keyup은 모두 단일 문자로 캡처 한 키 value의 값이므로 단일 문자의 경우를 판단 할 수 없습니다.
Keypress는 기본 키보드와 숫자 문자를 구별하지 않습니다.
Keydown 및 Keyup은 기본 키보드와 숫자 문자를 구별합니다.
그중에서도 PRSCRN 키 KEYPRESS, KEYDOWN 및 KEYUP를 캡처 할 수 없습니다.
키보드를 사용하는 경우 일반적으로 Ctrl+Shift+Alt와 유사한 키 조합 기능을 사용합니다.
입력 메소드의 충돌 해결 및 메시지 보내기위한 바로 가기 키에 관한 위의 기사는 편집기가 공유하는 모든 컨텐츠입니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.