[javascript] ID와 독립적 인 HTML 양식의 첫 번째 입력 요소에 초점을 설정하려면 어떻게해야합니까?

요소 의 ID를 몰라도 페이지를로드 할 때 첫 번째 입력 요소 (텍스트 상자, 드롭 다운 목록 등)에 웹 페이지 의 포커스 (입력 커서) 를 설정 하는 간단한 방법이 있습니까?

내 웹 응용 프로그램의 모든 페이지 / 양식에 대한 공통 스크립트로 구현하고 싶습니다.



답변

jQuery 기반 방법을 시도 할 수도 있습니다.

$(document).ready(function() {
    $('form:first *:input[type!=hidden]:first').focus();
});


답변

이것이 질문에 대한 답은 아니지만 (일반적인 스크립트가 필요함), HTML5가 ‘autofocus’속성을 도입한다는 것을 다른 사람들이 아는 것이 유용 할 수 있습니다.

<form>
  <input type="text" name="username" autofocus>
  <input type="password" name="password">
  <input type="submit" value="Login">
</form>

HTML5로 들어가면 더 많은 정보가 있습니다.


답변

document.forms[0].elements[0].focus();

이것은 예를 들어 루프를 사용하여 다듬을 수 있습니다. 특정 유형의 필드, 비활성화 된 필드 등에 초점을 맞추지 않습니다. 실제로 수행 하는 필드에 class = “autofocus”를 추가하는 것이 더 좋습니다. 그 클래스 이름을 찾고 형태의 [I] .elements [J] 이상 희망이 집중 및 루프.

어쨌든 : 일반적으로 모든 페이지에서이 작업을 수행하는 것은 좋은 생각이 아닙니다. 입력에 초점을 맞추면 사용자는 예를 들어 능력을 잃게됩니다. 키보드에서 페이지를 스크롤하십시오. 예상치 못한 경우 이는 성 가실 수 있으므로 양식 필드를 사용하는 것이 사용자가 원하는 작업이 될 것이라고 확신 할 때만 자동 초점을 맞 춥니 다. 즉. 당신이 구글이라면.


답변

내가 찾은 가장 포괄적 인 jQuery 표현식은 ( 여기 의 도움을 통해 )

$(document).ready(function() {
    $('input:visible:enabled:first').focus();
});


답변

당신이 사용하는 경우 프로토 타입 자바 스크립트 프레임 워크를 당신이 사용할 수있는 focusFirstElement의 방법 :

Form.focusFirstElement(document.forms[0]);


답변

여기에 쓸만한 글이 있습니다. 웹 페이지의 첫 번째 입력에 초점 설정


답변

숨겨진 입력도 건너 뛰어야합니다.

for (var i = 0; document.forms[0].elements[i].type == 'hidden'; i++);
document.forms[0].elements[i].focus();