2013-07-25 4 views
7

Microsoft Office Outlook과 같은 프로그램에 표시된 "자동 수정"기능을 다소 복제하려고합니다. 우선 들어텍스트 영역의 특정 줄의 특정 위치에 커서를 설정하십시오.

는 언제 시작하는 줄은 사용자 유형 "A"(문자 A와 공간) 나는 "* 에이전트가 ["

제가 아래에 쓴 해당 텍스트를 변경할 텍스트 영역에서 위에서 아래로 입력하는 경우 잘 작동합니다. 그러나 텍스트 영역의 다른 곳을 입력하면 텍스트가 변경된 다음 커서가 텍스트 영역의 끝으로 이동합니다.

커서가 항상 변경된 텍스트의 끝에 배치되기를 원합니다.

나는 변수 currentLineNumber에서 변경된 줄 번호를 가지고 내가 커서가 해당 행의 8 번째 문자 다음에 할 필요가 알고 있지만 나는

이상적 ID로 거기 가서 그것을 구별하는 방법에 확신 해요 예를 들어

function setCursor(row, position) { 
//.... code to set cursor 
} 

이 작업을 수행하려면 어떻게해야합니까? 내가 jQuery를 읽거나 이해하기가 약간 어려울지라도 자바 스크립트 나 jQuery 솔루션을 열어 둔다.

내가 전반적으로 필요한 것을 얻는 더 좋은 방법이 있다면, 나는 그것에 대해서도 개방적이다. 당신은 내가 당신의 바이올린 참조 업데이트되었습니다

+0

[HTML 텍스트 상자에서 커서 위치 설정] (http : //stackoverflow.com/questions/512528/set-cursor-position-in-html-textbox) –

답변

10

문제를 이해하지 않는 경우 여기

jsFiddle의 :이 방법에 사용되는 VAR currentPosition을 추가 한 http://jsfiddle.net/eghpf/2/

function setSelectionRange(input, selectionStart, selectionEnd) { 
    if (input.setSelectionRange) { 
    input.focus(); 
    input.setSelectionRange(selectionStart, selectionEnd); 
    } 
    else if (input.createTextRange) { 
    var range = input.createTextRange(); 
    range.collapse(true); 
    range.moveEnd('character', selectionEnd); 
    range.moveStart('character', selectionStart); 
    range.select(); 
    } 
} 

이것으로부터 오는 것 jQuery Set Cursor Position in Text Area

무슨 일이 일어나는가? r은 항상 마지막 위치에 있음); $('#systemNotesbuilder').val(arrayOfLines.join("\n"));으로 전화 할 때 전체 값이 새 값으로 겹쳐 쓰여지고 그 새 값 다음에 커서가 놓입니다. 커서를 설정하는 호출은 그 호출 이후에 있어야합니다.

+0

대단히 감사합니다. 그것은 내가 생각했던 것보다 훨씬 덜 고통 스러웠고 어떻게 작동하는지 이해할 수 있습니다. 완전한! – DelightedD0D

관련 문제