2016-12-28 2 views
3

으로 제어하는 이름 또는 ID. 이 같은 HTML이 모습입니다 :이 속성을 추가하려고설정 초점 내가 자동으로 각도의 UI 그리드 필터 내에서 입력 컨트롤에 포커스를 설정하고 싶습니다 없음 이름이나 ID

<div class="gridFullThin" ui-grid="gridApps" ui-grid-selection ui-grid-resize-columns></div> 

하지만 도움이되지 않았다 :

IE에서
autofocus="autofocus" 

의 F12 도구 DOM Explorer 내, 내가 볼 수있는 입력은 다음과 같습니다.

<input class="ui-grid-filter-input ui-grid-filter-input-0 ng-touched" aria-label="Filter for column" type="text" placeholder="" ng-attr-placeholder="{{colFilter.placeholder || ''}}" ng-model="colFilter.term"> 

ID가 없습니다. 자동으로 초점을 맞출 수있는 방법이 있습니까?

** 수정 ** -이 (파란색으로 강조 입력 요소) F12와 같이 생성 된 HTML이다 :

enter image description here

+0

'document.getElementsByClassName ('ui-grid-filter-input-0')'과 trigger'.focus()' –

+0

나는'autofocus'가 작동한다는 것에주의해야한다. ''의 HTML (그러나 부모의'div'는 아닙니다)에 넣을 수 있었다면 말이죠. –

+0

이 링크를 확인해야 할 수도 있습니다 (http://stackoverflow.com/a/14837021/44544540) – MaxZoom

답변

1

가 자신을 추가 할 수있는 마크 업을 편집 할 수 없습니다 당신 가정은 ID를 사용하여 클래스를 대상으로하거나 입력을 ID가있는 상위 항목의 하위 항목으로 지정할 수 있습니다.

채팅에서 논의 정답 :

var elements = document.querySelector('.modal .ui-grid-header-cell .ui-grid-filter-input-0'); 
elements.focus(); 
+0

클래스별로 요소를 가져 오려고했지만 4 개를 얻었습니다. –

+0

@BobHorn 모든 코드를 보지 않고도 더 많은 것을 도울 수 있지만 클래스를 타겟팅 할 때 좀 더 구체적으로 표현할 수 있습니다. 예를 들어 헤더에 하나의 입력이 있고 본문에 하나의 입력이있는 경우 '헤더 입력'또는이 경우에는 클래스 '헤더 .ui-grid-filter-input'으로 선택할 수 있습니다. –

+0

방금 ​​내 게시물에 스크린 샷을 게시했습니다. 그게 도움이 되니? 나는 이것을 시도했지만 0 요소를 반환한다. $ window.document.getElementsByClassName ('ui-grid-header-cell .ui-grid-filter-input-0') ' –

0

이 당신의 HTML 마크 업의 첫 번째 입력 요소 인 경우에, 당신은이 작업을 수행 할 수 있습니다 :

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

을, 그렇지 않으면, 당신이있는 경우 이 입력 전에 오는 숨겨진 요소가 있으면 양식 요소를 반복하여 숨겨진 첫 번째 요소를 찾아야합니다.