iOS 장치 (예 : iPhone, 모바일 Safari를 실행하는 iPad)에서 입력 필드의 텍스트를 프로그래밍 방식으로 어떻게 선택합니까?
일반적으로 요소 에서 .select()
함수 를 호출하는 것으로 충분 <input ... />
하지만 이러한 장치에서는 작동하지 않습니다. 커서는 선택하지 않고 기존 항목의 끝에 남게됩니다.
답변
input.setSelectionRange(0, 9999);
답변
이 스레드의 어떤 것도 나를 위해 일하지 않았습니다. 다음은 내 iPad에서 작동하는 것입니다.
// t is the input field
setTimeout(function() {
t.setSelectionRange(0, 9999);
}, 1);
답변
부정적인 것을 증명하기는 어렵지만 제 연구에 따르면 이것이 모바일 사파리의 버그라고합니다.
focus ()는 어느 정도 작동합니다. 성공하려면 두 번 이상의 탭이 필요할 수 있으며 탭 자체가 필드를 제공하므로 해당 필드에 대한 사용자 탭에 응답하려는 경우에는 필요하지 않습니다. 초점. 불행히도 select () 는 단순히 Mobile Safari에서 작동하지 않습니다.
가장 좋은 방법은 Apple 의 버그 보고서 일 수 있습니다 .
답변
이 바이올린을보십시오 : (입력 상자에 텍스트를 입력하고 ‘텍스트 선택’을 클릭하십시오)
내 iPod (5 세대 iOS6.0.1)의 입력 상자에서 텍스트를 선택하고 키보드를 열고 잘라 내기 / 복사 / 제안 … 메뉴도 표시합니다.
일반 자바 스크립트 사용. jQuery로 이것을 시도하지 않았습니다.
document.getElementById("p1").selectionStart = 0
document.getElementById("p1").selectionEnd = 999
숫자 999는 샘플 일뿐입니다. 이 숫자를 선택하려는 문자 수로 설정해야합니다.
최신 정보:
- iPod5-iOS6.0.1-정상적으로 작동합니다.
- iPad1-iOS5.1.1-텍스트 만 선택되었습니다. 선택 항목을 한 번 탭하여 잘라 내기 / 복사 메뉴를 엽니 다.
- iPad2-iOS4.3.3-텍스트 만 선택되었습니다. 선택 항목을 한 번 탭하여 잘라 내기 / 복사 메뉴를 엽니 다.
마지막 2 개의 경우 input
요소 에서 클릭 이벤트를 트리거하여 실험 할 수 있습니다.
업데이트 : (2013 년 7 월 10 일)
- iPod5-iOS7.0.2-링크에서 바이올린 사용 : 입력 상자에 입력 된 텍스트를 볼 수 없습니다. 선택을 누르면 facebook.com (??? wtf ???)으로 리디렉션됩니다.
업데이트 : (2013 년 11 월 14 일)
- 아이폰 OS 7.0.3 :에서 주석 덕분에 binki 해당 업데이트
.selectionStart
및.selectionEnd
수행 작업을.
업데이트 : (2015 년 1 월 15 일)
- iOS 8.xx : Michael Siebert 의 의견에 감사드립니다 . 댓글에서 발췌 : 포커스와 클릭 이벤트를 모두 수신 한 다음 setTimeout / _. debounce를 사용하여 두 경우 모두에서 작동하도록해야했습니다. 입력을 클릭하거나 탭을 통해 포커스를
답변
죄송합니다. 이전 게시물에서 Javascript로 답변을 원한다는 것을 암시하는 Javascript를 알지 못했습니다.
원하는 것을 얻으려면 있는 UIWebView 와 자바 스크립트 , 나는 일에 그것을 얻을 함께 정보의 두 가지 중요한 부분을 긁어 냈다. 모바일 브라우저에 대해 잘 모르겠습니다.
-
element.setSelectionRange(0,9999);
우리가 원하는 것을한다 -
mouseUp 이벤트가 선택을 취소합니다.
따라서 (Prototype 사용) :
input.observe ( 'focus', function () { this.setSelectionRange (0, 9999); }); input.observe ( 'mouseup', function (event) { event.stop (); });
트릭을 수행합니다.
매트
답변
포커스가 작동하는 것처럼 보이지만 네이티브 이벤트에서 직접 호출 할 때만 가능합니다. SetTimeout과 같은 것을 사용하여 포커스를 호출하면 키보드를 호출하지 않습니다. iOS 키보드 제어가 매우 나쁩니다. 좋은 상황이 아닙니다.