본문 바로가기
프로그래밍/HTML

HTML <datalist> 태그 (자동 완성 추천 목록 기능)

by GenieIT* 2025. 2. 21.
728x90

 

  • datalist 태그는 input 요소와 함께 사용되며, 자동 완성 옵션을 제공
  • option 태그를 사용하여 추천 값을 정의
  • select 태그와 달리 사용자가 새로운 값을 입력할 수도 있음
  • 브라우저 지원이 다를 수 있으므로, 테스트 필수

 


 

HTML datalist 태그란?

HTML datalist 태그는 input 요소와 함께 사용되어, 사용자가 입력할 때 자동 완성(autocomplete) 목록을 제공하는 HTML 태그입니다. 사용자가 직접 값을 입력할 수도 있고, 제안된 옵션 중에서 선택할 수도 있습니다.

 


 

기본 문법

<label for="browser">사용하는 브라우저:</label>
<input list="browsers" id="browser" name="browser">

<datalist id="browsers">
  <option value="Chrome">
  <option value="Firefox">
  <option value="Edge">
  <option value="Safari">
  <option value="Opera">
</datalist>

사용자가 input 태그 필드에 입력하면 datalist 태그에서 미리 정의한 옵션이 자동으로 추천됩니다.

 


 

주요 특징

  • 사용자가 입력할 때 자동 완성 목록을 제공
  • option 태그를 사용하여 여러 개의 추천 값을 정의 가능
  • select 태그와 달리, 사용자가 목록에 없는 값을 직접 입력할 수도 있음
  • 브라우저 기본 지원 기능으로 JavaScript 없이 자동 완성 제공

 


 

주요 속성

속성 설명
id <input> 요소의 list 속성과 연결하기 위한 고유 식별자
option 자동 완성 목록의 개별 항목을 정의하는 태그

datalist 태그 자체에는 속성이 없으며, option 태그 내부에서 값을 지정합니다.

 


 

사용 예제

💡 자동 완성 기능 제공

🌈 예제 코드:

<label for="city">도시 선택:</label>
<input list="cities" id="city" name="city">

<datalist id="cities">
  <option value="서울">
  <option value="부산">
  <option value="대구">
  <option value="인천">
  <option value="광주">
</datalist>

실행 결과:

사용자가 입력할 때 해당하는 도시명이 자동으로 추천됩니다.

 

💡 숫자 입력 시 자동 완성 제공

🌈 예제 코드:

<label for="year">출생 연도:</label>
<input list="years" id="year" name="year">

<datalist id="years">
  <option value="1990">
  <option value="1995">
  <option value="2000">
  <option value="2005">
  <option value="2010">
</datalist>

실행 결과:

연도를 입력할 때 자동 완성 목록이 나타납니다.

 

💡 검색어 자동 완성 기능 구현

🌈 예제 코드:

<label for="search">검색어 입력:</label>
<input list="keywords" id="search" name="search" placeholder="검색어 입력">

<datalist id="keywords">
  <option value="HTML 기초">
  <option value="CSS 강좌">
  <option value="JavaScript 입문">
  <option value="React 학습">
  <option value="웹 개발">
</datalist>

실행 결과:

검색 입력 필드에서 미리 입력된 키워드를 추천하여 사용자 경험(UX) 향상

 


 

datalist 태그와 select 태그의 차이점

태그 차이점
datalist 사용자가 제안된 옵션을 선택할 수도 있고, 새로운 값을 입력할 수도 있음
select 목록에서 반드시 제공된 옵션 중 하나만 선택해야 함

💡 datalist 예제 (새로운 값 입력 가능)

🌈 예제 코드:

<input list="fruits" name="fruit">
<datalist id="fruits">
  <option value="사과">
  <option value="바나나">
  <option value="오렌지">
</datalist>

실행 결과:

사용자가 "포도"를 입력할 수도 있음

 

💡 select 예제 (고정된 값만 선택 가능)

🌈 예제 코드:

<select name="fruit">
  <option value="사과">사과</option>
  <option value="바나나">바나나</option>
  <option value="오렌지">오렌지</option>
</select>

실행 결과:

제공된 옵션 외에는 선택 불가

 


 

주의 사항

  1. datalist 태그는 input 태그 요소와 함께 사용해야 하며, select 태그와는 다름
  2. option 태그에는 value 속성만 사용할 수 있고, label 속성을 사용할 수 없음
  3. 브라우저마다 디자인이 다를 수 있으며, 일부 브라우저(특히 iOS Safari)에서는 완벽하게 지원되지 않을 수도 있음
  4. multiple 속성 지원하지 않음 (여러 개의 값을 동시에 선택할 수 없음)

 


 

사용 장점

  • 사용자 입력을 돕기 위해 자동 완성 기능을 제공할 때
  • 입력 필드에서 추천 값을 제공하면서도 사용자가 자유롭게 입력할 수 있도록 할 때
  • 검색 필드, 제품 코드 입력, 주소 입력 등에 활용할 때

 


 

 

 

 

 

728x90

'프로그래밍 > HTML' 카테고리의 다른 글

HTML <del> 태그 (취소 표시선)  (119) 2025.02.21
HTML <dd> 태그 (설명 기능)  (65) 2025.02.21
HTML <data> 태그 (SEO 및 데이터 처리)  (126) 2025.02.20
HTML <colgroup> 태그  (78) 2025.02.20
[HTML] col 태그  (53) 2025.02.20