>  기사  >  웹 프론트엔드  >  js의 마지막 위치로 포커스를 이동하는 간단한 방법

js의 마지막 위치로 포커스를 이동하는 간단한 방법

高洛峰
高洛峰원래의
2016-12-05 11:52:001436검색

입력 상자(입력/텍스트 영역)가 포커스를 받으면 포커스를 끝으로 이동하는 것이 사용자 경험이 좋은 경우도 있습니다. 인터넷에 있는 대부분의 방법은 IE 브라우저용입니다.

코드는 다음과 같습니다.

var el = document.getElementById('txtArticle');
var range = el.createTextRange();
range.moveStart('character', el.value.length);
range.collapse(false);
range.select();

실제로 moveStart 줄을 삭제할 수 있습니다. 왜냐하면 createTextRange 메서드가 범위인 경우 축소 메소드와 매개변수를 사용합니다. false인 경우 끝으로 이동할 수 있습니다. Collapse(true)는 커서를 범위의 시작 부분으로 이동하고,collapse(false)는 커서를 범위의 끝 부분으로 이동합니다. Firefox와 같은 표준 브라우저는 w3c의 setSelectionRange 메소드를 사용할 수 있습니다.

코드는 다음과 같습니다.

var range, el = document.getElementById('txtPhone');
if (el.setSelectionRange) {
  el.focus();
  el.setSelectionRange(el.value.length, el.value.length)
} else {
  range = el.createTextRange();
  range.collapse(false);
  range.select();
}

setSelectionRange 메소드는 입력/텍스트 영역 요소에만 적용됩니다. 기본이 아닌 편집 가능한 다른 요소의 초점은 선택 개체의 축소 방법으로 이동할 수 있습니다.

예:

var sel, el = document.getElementById('hint');
sel = window.getSelection();
sel.collapse(el, 1);
el.focus();


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.