나는 오늘 매우 어려운 문제를 겪었습니다. 입력 상자의 검증을 할 때 프로젝트의 비즈니스 로직은 Select의 특정 옵션을 선택할 때 사용자가 물건을 입력 할 수 있도록 입력 입력 상자가 표시되었다는 것입니다. 그러나 사용자가 아무것도하지 않은 경우 사용자가 입력 할 경고 상자가 나타납니다. 입력 후 입력을 숨길 것입니다.
따라서 다음과 같은 문제가 발생합니다. 입력 입력 상자가 표시되면 초점을 자동으로 얻어야합니다. 현재 나는 그것을 사용합니다
코드 사본은 다음과 같습니다.
document.getElementById ( 'id'). focus ();
글쎄, 나는 그것을 시도했고 그것은 아주 잘 작동했습니다. 나는 도울 수 없었지만 행복하다고 느끼고 그것을 끝냈다!
그러나 계산은 인간 계산만큼 좋지 않습니다. Firefox로 테스트 할 때 끝났습니다. 입력을 처음 표시했을 때 사용하기 쉬웠지만 경고 알림 상자를 닫으면 입력이 초점을 맞출 수 없습니다.!
문제는 까다 롭고 이유를 모르겠습니다. 그래서 인터넷에서 마스터의 답변을 확인하고 다음 트릭을 찾아서 시도해 보았습니다. 정말 유용했습니다!
경고 후 원본
코드 사본은 다음과 같습니다.
document.getElementByIdx ( 'id'). focus ();
변경
코드 사본은 다음과 같습니다.
Window.setTimeout (function () {document.getElementById ( 'id'). focus ();}, 0);
좋아요, 문제가 해결되었습니다!
Settimeout은로드 후 지정된 시간을 지연시킨 후 이전 표현식의 실행을 나타냅니다. 물론 여기에는 0ms를 지연시킨 후 기능의 실행이 있습니다.
방금이 문제를 해결했을 때 Firefox에서 왜 해결할 수 있는지 여전히 모르겠습니다. 위대한 하나님이 알고 있다면, 나는 늦은 학생들이 그것을 배우도록 메시지를 남길 것입니다. 매우 감사합니다!