오늘 매우 어려운 문제에 직면했습니다. 입력 상자 확인을 할 때 내 프로젝트의 비즈니스 논리는 선택 항목의 특정 옵션을 선택할 때 사용자가 입력하는 항목을 표시해야 한다는 것이었습니다. 사용자가 아무것도 하지 않으면 사용자가 입력할 수 있도록 경고 상자가 나타나야 합니다. 여기서는 입력 내용을 숨기겠습니다.
따라서 다음과 같은 문제가 발생합니다. 입력 입력 상자가 표시되면 자동으로 포커스를 받아야 합니다. 이때
document.getElementById('id').focus();
글쎄요. 그것을 시도했고 효과가 있었습니다. 나는 행복할 수밖에 없었습니다. 끝났습니다!
하지만 신은 사람만큼 좋지는 않네요. Firefox로 테스트해보니 처음 입력이 표시될 때는 사용하기 쉬웠지만 알림 상자를 닫으면 끝났습니다. , 입력이 초점을 맞출 수 없습니다. 당황스럽습니다!
문제가 어려운데 이유를 모르겠어서 인터넷에서 전문가들의 해결 방법을 조금 찾아보다가 다음과 같은 방법을 찾아 실행해 보았는데 정말 잘 되더라구요!
경고 후 원본
document.getElementByIdx('id').focus();
window.setTimeout(function () { document.getElementById('id').focus();}, 0)
좋습니다. 문제가 해결되었습니다!
setTimeout은 로딩 후 지정된 시간을 지연한 후 이전 표현식을 실행한다는 의미입니다. 물론 여기서는 0ms의 지연 후에 함수가 실행됩니다.
방금 이 문제를 해결했는데 왜 Firefox에서 해결되는지 모르겠습니다. 아시는 분은 메시지를 남겨주시면 감사하겠습니다.