문제

내가 좋아하는 입력소(type=text)또는 textarea 요소인지 검증하는 동적으로 트리거하여 특정 키 입력.이를 위해 사용될 중국어 입력,그래서 예를 들어:

사용자가"ma2"으로 입력된 요소입니다.Keydown 이벤트에 대한 트리거 모든 키 입력,그리고 2 지가 나타납니다.대신,사용자 프레스"2""a"를 받을 것이 음색 표시,다음과 같다:"á".결국 사용자는 입력 한:"예술".

이것으로 수행될 수 있습니를 읽고 변화의 전체 입력 값을 사용하여$(요).val()그러나,입력된 요소에 초점을 그것의 값으로 설정하여 부름입니다.val("something"),커서 이동을 끝까지의 텍스트입니다.이 정보에 대해서는 가장 상황 때문에 사용자가 단속을 입력 끝에서의 현장이지만,이 작업에는 모든 상황입니다.

...는 또 다른 이 문제에 대한 해결책을 얻을 것입/의 위치를 설정 커서를 이내에 입력 또는 textarea 요소입니다.나는 생각하지 않는 이것이 가능한 자바 스크립트에서 그러나입니다.


그래서,Remy 궤도에 대한 확실합니다.트 키 누름을 입력 특수 문자없이 많이 번거로움입니다.대신,나를 잡아 keydown 이벤트의 값을 설정하는 입력/textarea,그리고 그런 다음 이동을 검색합니다.

나는 아무것도 발견하지 않았을 위해 좋은 캐럿 얻기/설정에서 jQuery,하지만 다음과 같은 정말 일어났는 문제가 아래로 나를 위해.나는 링크를 게시하여 최종 병음 코드를 입력할 때 안정적입니다.그것의 아주 가까 지금입니다.

http://blog.vishalon.net/Post/57.aspx http://demo.vishalon.net/getset.htm

도움이 되었습니까?

해결책

되지 않을 수 있습 많은 행운 트리거 키를 누르-나는 매우지 않으면 키를 누를 때는 신뢰할 수 있는(i.e에서 유래된 브라우저),되지 않습니다.

그러나,당신이 할 수 있는 대체 텍스트를 삽입 캐럿의 다시는 대신 그것을 촬영을 끝의 문자열입니다.당신을 사용할 필요가 setSelectionRange 및 createTextRange(IE).

내가 함께 넣었습니다 작은 데모체 당신이 볼 수 일치하지 않는 실제 단어를,그러나 그는 어떻게 작동하는지 보여 줍니다:

http://jsbin.com/emudi/ (편집 원 http://jsbin.com/emudi/edit)

트릭은 이 캐럿은,대체 찾을 단어를 사용하여 substr(보다는 regex 로 교체하지 않을 잘못 매치)다음 다시 배치 캐럿의 끝에 새로운 단어입니다.

대체 트리거 공간에 누르거나 모호하게습니다.에 참고 이 수 있습니다-당신 트리거 보충에서 특정 문자(즉는'2')-그러나 나는 권장하지 않 검색에 교체 키 누르기.

다른 팁

또한,간단한 코드의 통제"캐럿"크로스 브라우저에는 방법이 도움이 될 수 있:

http://javascript.nwbox.com/cursor_position/

조금 늦게 대답하지만 난 당신이 옛 물건에 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top