지난 이틀 동안, 우리는 텍스트 상자 입력을 실시간으로 모니터링 해야하는 기능을 수행했으며 중국 입력 방법이 OnkeyUp 이벤트를 트리거 할 수없는 메스꺼움 문제를 겪었습니다.
특정 증상은 다음과 같습니다.
입력 키 업 이벤트를들을 때 English Input 메소드는 KeyUP 이벤트를 통해 실시간으로 텍스트 상자 값의 변경을 감지 할 수 있습니다. 그러나 입력 방법이 중국어가되면 입력 키 업 이벤트가 정상적으로 트리거되지 않습니다. 이것은 이전의 글쓰기 방식입니다.
<html> <head> <script type = "text/javaScript"src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <p> 텍스트 상자 내용을 감지하기 위해 키업 이벤트를 사용합니다 : </p> <p> <input type = "keyup_"id = " autocomplete = "off"/> <span id = "keyup_s"> </span> <script type = "text/javaScript"> $ ( '#keyup_i'). bind ( 'keyup', function () {$ ( '#keyup_s'). text ($ (this) .val ());} </p> </body> </html>보시다시피,이 글쓰기는 중국인이 KeyUP 이벤트를 유발할 수없는 문제에 직면합니다. 그래서 나는 해결책을 찾았습니다. 나는 바이두의 검색 바 프롬프트가 아무런 문제가없는 것 같다는 것을 기억했기 때문에 바이두의 JS를보기 시작했습니다. Baidu의 JS는 못 생겼습니다 ...이 방법은 문자로 명명되었으며, 마침내 입력 상자의 수정을 모니터링하는 타이머로 타임 아웃을 사용하고 있음을 알았습니다. 이 방법에 만족하지 않습니다. 그래서 나는 더 나은 솔루션을 계속 찾았으므로 OnInput과 OnPropertyChange의 두 가지 이벤트를 찾았습니다.
OnInput은 Firefox에서 사용할 수 있으며 OnPropertyChange는 IE에서 사용할 수 있습니다. 두 방법에는 몇 가지 차이가 있습니다.
OnInput은 속성 값의 변경 사항 만 감지 할 수 있으며 OnPropertyChange는 값을 포함하는 모든 속성의 변경 사항을 감지 할 수 있습니다. 그래서 이것으로 바뀌기 시작했습니다.
<html> <head> <script type = "text/javaScript"src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <p> OnInput 및 onproperTyChange 이벤트 사용 : </p> <pup> <p> <input "="input "" "" id = "inputorp_i"autocomplete = "off"/> <span id = "inputorp_s"> </span> <script type = "text/javaScript"> // 브라우저가 악의적인지 확인합니다. IE와 같은 글을 쓸 방법이 없습니다. var bind_name = '입력'; if (navigator.useragent.indexof ( "msie")! = -1) {bind_name = 'propertychange'; } $ ( '#inputorp_i'). bind (bind_name, function () {$ ( '##inputorp_s'). text ($ (this) .val ());}) </script> </p> </body> </html>문제가 해결되었습니다.