즉각적으로 검색 가능한 데이터리스트를 만드는 방법
드롭 다운 목록은 옵션 제공 입력 필드의 경우 특히 사용 가능한 옵션 목록이 긴 경우 사용자는 원하는 옵션을 선택할 수 있습니다. 들판에 타이핑하다, 또는 옵션들을 살펴 보라. 그들이 찾고있는 것과 일치 할 수 있습니다.. 옵션을 통해 검색 할 수 있음, 그러나 이상적인 솔루션입니다..
이 동작은 HTML 요소 입력 제안 사항을 표시합니다. 다른 컨트롤 (예 :
꼬리표. 하나
사용자가 가지고있을 때만 사용 가능한 옵션을 보여줍니다. 이미 입력 된 입력 필드에.
사용자가 더 많은 정보를 입력 할 수있게하면 입력 필드를 더욱 유용하게 사용할 수 있습니다. 전체 옵션 목록에 액세스 입력을받는 과정에서 언제든지.
이 글에서 우리는 드롭 다운 목록은 언제든지 검색 가능합니다. ~을 사용하여 과
HTML 요소와 약간의 JavaScript.
1. 옵션으로 데이터리스트 만들기
먼저 다른 텍스트 편집기에 대한 데이터 목록을 만듭니다. 의 값이 명부
의 속성 꼬리표 와 같다 그만큼
신분증
~의 태그 - 이것은 우리가 서로를 묶는 방법입니다..
2. 데이터리스트를 보이게하십시오.
기본적으로 HTML 요소 숨겨진. 우리는 그것을 볼 수 있습니다. 입력을 시작하다. 데이터리스트가 연결된 현장으로.
그러나 데이터리스트의 내용 (즉, 모든 옵션)을 강제로 "강제 적용"하는 방법이 있습니다. 웹 페이지에 나타 내기. 우리는 단지 그것에게 적당한 것을 줄 필요가있다. 디스플레이
재산 가치 이것 말고도 없음
, 예를 들면 디스플레이 : 블록;
.
데이터리스트 디스플레이 : 블록;
표시된 옵션 아직 선택 가능하지 않다. 이 시점에서 브라우저 만 옵션을 렌더링합니다. 데이터리스트 안에서 찾는다..
앞서 언급했듯이, 내장 된 요소, 옵션의 일부가 이미 나타나고 선택할 수 있습니다., 그러나 사용자가 브라우저에 입력 할 수있는 문자열을 입력해야만 일치하는 옵션을 찾는다..
우리는 또한 모든 옵션 (드롭 다운 데이터 목록 아래에 표시된 위의 스크린 샷) 선택할 수있는 ...에서 입력 처리의 다른 모든 지점 - 사용자가 옵션을 입력하기 전에 옵션을 체크 아웃하거나 입력 필드에 이미 무엇인가를 가져 왔을 때.
3.
HTML 요소
사용자에게 다음을 허용하는 두 가지 방법이 있습니다. 모든 옵션을보고 선택하십시오. 그들이 원할 때마다 :
- 우리는 클릭 이벤트 처리기 모든 옵션에 적용 할 수 있으며 클릭 할 때 옵션을 선택하는 데 사용할 수 있습니다. 변환 옵션들 실제 드롭 다운 목록으로, 기본적으로 선택할 수 있습니다..
- 우리는 할 수있다. 옵션을 감싸다. 데이터리스트의 와 더불어
HTML 요소.
우리는 두 번째 방법을 선택합니다. 더 간단하고 사용이 허용됩니다. 대체 메커니즘으로 해당 브라우저를 지원하지 않는 브라우저 요소. 브라우저가 데이터리스트를 렌더링 및 표시 할 수없는 경우 렌더링
모든 옵션을 가진 요소 대신에.
기본적으로 고르다
요소는 데이터리스트를 지원하는 브라우저에는 표시되지 않습니다. 즉, 데이터리스트가 내용을 렌더링하도록 강요한다. 와 더불어 디스플레이 : 블록;
CSS 규칙.
그래서 우리가 옵션을 감싸다. 위의 예에서 (datalist는 표시 : 블록
) 와 더불어 HTML 태그 인 경우 코드는 다음과 같습니다.
에 모든 옵션보기 의 고르다
드롭 다운 목록에서 속성을 사용해야합니다. 배수
하나 이상의 옵션을 표시하려면 크기
우리가 보여주고 싶은 옵션의 수.
4. 토글 버튼 추가
전체 드롭 다운 목록이 나타납니다. 만 사용자 토글 버튼 클릭 입력 필드 옆에는 사용자가 작업 데이터리스트를 입력하는 동안이 표시됩니다. 하자 변화시키다 디스플레이
데이터리스트의 가치 에 없음
, 그리고 또한 버튼 추가 입력 필드 옆에있는 디스플레이
데이터리스트의 값으로, 결과적으로 고르다
.
데이터리스트 디스플레이 : 없음;
또한 HTML 파일의 데이터 목록 위에 다음 버튼을 추가해야합니다.
JavaScript를 보자. 먼저, 초기 변수.
button = document.querySelector ( 'button'); datalist = document.querySelector ( 'datalist'); select = document.querySelector ( 'select'); options = select.options;
다음으로, 우리는 이벤트 리스너를 추가하십시오. (toggle_ddl
) 버튼의 클릭 이벤트로 데이터리스트의 외관을 토글한다..
button.addEventListener ( 'click', toggle_ddl);
그런 다음 toggle_ddl ()
기능. 그렇게하기 위해서는 의 가치를 확인하십시오. datalist.style.display
재산. 빈 문자열이면 데이터 목록이 숨겨져 있으므로 그 값을 블록
, 또한 ~에 버튼을 변경하십시오 아래를 가리키는 화살표에서 위로 향하는 화살표까지.
DDL * / datalist.style.display = '블록'; this.textContent = "à ("¢hide_select () / * 숨기기 DDL * / datalist.style.display = "; button.textContent = "âÂ-¼";
그만큼 hide_select ()
기능 데이터리스트를 숨 깁니다. ~을 설정하여 datalist.style.display
속성을 빈 문자열로 되돌리고 버튼 화살표를 다시 아래쪽을 가리 키도록 변경합니다..
마지막 설정에서 입력 필드에 이전에 선택한 옵션이 있고 드롭 다운 목록이 나중의 버튼 클릭으로 트리거 된 경우 이전에 선택한 옵션도 선택됩니다 선택한 것으로 표시해야합니다. 드롭 다운 목록에서.
이제 다음 강조 표시된 코드를 toggle_ddl ()
기능:
DDL * / datalist.style.display = '블록'; this.textContent = "à ("¢Â-² "; var val = input.value; for (var i = 0; i또한 사용자가 입력 필드에 입력 할 때 드롭 다운 목록을 숨기려고합니다 (작업중인 데이터 목록이 표시 될 때)..
/ * 사용자가 텍스트 필드에 입력하려고 할 때 DDL 숨기기 * / input = document.querySelector ( 'input'); input.addEventListener ( 'focus', hide_select);5. 옵션이 선택되면 입력 업데이트
마지막으로 ~을 추가하다
변화
이벤트 핸들러 ~로태그를 사용하여 사용자가 드롭 다운 목록에서 옵션을 선택하면 해당 값이
필드.
/ * 사용자가 DDL에서 옵션을 선택하면 텍스트 필드에 쓰기 * / select.addEventListener ( 'change', fill_input); function fill_input () input.value = options [this.selectedIndex] .value; hide_select ();단점
이 기술의 가장 큰 단점은 스타일을 정하는 직접적인 방법의 부재
요소 CSS (
과
태그는 브라우저마다 다름).
또한 Firefox에서는 입력 텍스트가 ~을 포함하다 입력 문자, 다른 브라우저는 ~로 시작하다 그 문자들. datalist의 W3C 스펙은 일치가 어떻게 수행되어야하는지 명시 적으로 지정하지 않습니다..
그것 이외에,이 방법은 좋다. 모든 주요 브라우저에서 작동합니다., 브라우저가 작동하지 않는 브라우저에서는 사용자가 드롭 다운 목록을 볼 수 있지만 추천 만 표시되지는 않습니다..
아래의 CSS 스타일링으로 최종 데모를 확인하십시오.