Autocomplete

입력한 글자에 맞춰 추천 목록을 보여주고 빠르게 선택하게 합니다.

Live preview
컴포넌트를 조작하면 여기에 결과가 표시됩니다.
코드 보기
HTML
<sy-autocomplete
  placeholder="과일 이름을 입력하세요"
  size="medium"
  trigger="focus"
  min="0"
  highlight-matches
  id="sample"
  aria-label="과일 검색"
></sy-autocomplete>

<script type="module">
  const component1 = document.querySelector("#sample");
  Object.assign(component1, {
    "source": [
      "Apple",
      "Apricot",
      "Banana",
      "Cherry",
      "Grape",
      "Orange",
      "Peach"
    ]
  });
</script>

사용 가이드

#

후보가 많고 이름을 알고 있는 검색·입력에 사용하세요. 정해진 소수의 값에서 고른다면 Select가 더 간단합니다.

  1. 오류 문구는 error 슬롯에 작성합니다.

    컴포넌트 안에 <span slot="error">오류 메시지</span>을 넣으세요. 글자뿐 아니라 링크 등 필요한 안내도 넣을 수 있습니다. noNativeValidity를 지원하는 입력은 이를 켜면 브라우저 팝업 대신 이 안내를 표시합니다. Switch는 항상 컴포넌트 아래에 오류를 표시합니다.

  2. 업무 규칙의 실패는 setCustomError()로 알립니다.

    예를 들어 서버가 중복된 값을 거절하면 error 슬롯의 문구를 바꾸고 setCustomError()를 호출하세요. 이 메서드에는 메시지 인자를 전달하지 않습니다. 사용자 지정 오류가 있으면 폼 제출도 차단됩니다.

  3. 해결 후 해제하고 제출 가능 여부를 확인합니다.

    clearCustomError()로 업무 규칙 오류를 해제하세요. required나 입력 형식 검사까지 해제되지는 않습니다. await checkValidity()는 true/false를, reportValidity()는 검사 결과와 오류 표시를 함께 제공합니다. name을 지정한 유효한 값은 제출 시 FormData로 읽습니다.

  1. 추천 후보 준비

    source에 문자열 배열을 전달합니다.

  2. 검색 시점 조절

    min으로 최소 글자 수를, debounceTime으로 입력 후 대기 시간(ms)을 정합니다.

  3. 입력과 선택 구분

    changed는 입력 변화, selected는 후보 선택을 알려줍니다. 필요한 이벤트에 앱의 처리를 연결하세요.

기능별 예제

#

20개 주제에서 필요한 기능을 선택하세요. 속성 설정, 메서드 호출, 이벤트 결과와 슬롯 구성을 실행 화면과 코드로 확인할 수 있습니다.

사용 예제 · Overview

선택한 예제를 직접 조작해 보세요. 여러 구성이 있는 주제는 세부 예제를 바꿀 수 있습니다.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Case Sensitive

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Debounce Time

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Disabled

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Highlight Matches

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Loading

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Min

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Placeholder

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Readonly

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Required

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Size

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Source

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Status

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Trigger

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

속성 · Value

설정에 따라 표시와 동작이 어떻게 달라지는지 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

메서드 · checkValidity

예제 안의 버튼으로 메서드를 호출하고 실제 결과를 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

메서드 · setCustomError

예제 안의 버튼으로 메서드를 호출하고 실제 결과를 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

메서드 · Set Focus & Blur

예제 안의 버튼으로 메서드를 호출하고 실제 결과를 확인하세요.

코드 보기
HTML
예제를 불러오고 있습니다.

이벤트 · Changed

컴포넌트를 조작하면 아래 실행 화면에 이벤트 이름과 전달 값이 표시됩니다.

코드 보기
HTML
예제를 불러오고 있습니다.

이벤트 · Selected

컴포넌트를 조작하면 아래 실행 화면에 이벤트 이름과 전달 값이 표시됩니다.

코드 보기
HTML
예제를 불러오고 있습니다.

API reference

#

이름에 마우스를 올리거나 키보드로 선택하면 적용 코드를 확인할 수 있습니다. 터치 화면에서는 이름을 누르세요.

<sy-autocomplete>

Properties

Attribute / PropertyTypeDefaultDescription
booleanfalse추천 목록을 비교할 때 대소문자를 구분합니다.
number0입력 처리 지연 시간(ms)입니다.
booleanfalse사용자 조작과 키보드 포커스를 차단합니다.
booleanfalse추천 후보에서 일치하는 부분을 강조합니다.
booleanfalse처리 중임을 표시합니다.
number0추천을 시작할 최소 입력 글자 수입니다.
string''FormData에 사용되는 필드 이름입니다.
string''값이 비어 있을 때 표시할 안내 문구입니다.
booleanfalse현재 값을 보여주면서 사용자 수정을 막습니다.
booleanfalse값이 없으면 폼 검증을 실패시킵니다.
'small' | 'medium' | 'large''medium'컴포넌트의 크기입니다.
'default' | 'warning' | 'error' | 'success''default'기본·성공·경고·오류 상태를 시각적으로 표현합니다.
string''현재 값 또는 항목의 식별 값입니다.
string[][]추천 후보 문자열 배열입니다. JavaScript 프로퍼티로 전달합니다.

객체·배열 값은 JavaScript 프로퍼티로 전달합니다.

'focus' | 'input''focus'목록 또는 팝업을 여는 사용자 동작입니다.
booleanfalse브라우저의 기본 오류 표시 대신 앱의 오류 UI를 사용할 때 지정합니다. checkValidity 검사 자체는 유지됩니다.

Events

EventDetailDescription
CustomEvent<{ value: string; isValid: boolean; status: string }>값 또는 선택 상태가 바뀔 때 발생합니다.
CustomEvent<{ value: string; isValid: boolean; status: string }>사용자가 항목을 선택했을 때 발생합니다.

Methods

MethodReturnsDescription
Promise<void>입력 또는 동작 요소에 키보드 포커스를 보냅니다.
Promise<void>입력 요소에서 포커스를 해제합니다.
Promise<boolean>현재 제약 조건에 맞으면 true, 아니면 false를 반환합니다.
Promise<boolean>현재 값을 검사하고 오류를 사용자에게 표시합니다.
Promise<string>현재 유효성 검사 상태를 반환합니다.
Promise<void>사용자 지정 오류 상태를 설정합니다.
Promise<void>사용자 지정 오류 상태를 해제합니다.

Slots

SlotDescription
유효성 검사 오류 메시지입니다.

<sy-autocomplete-option>

Properties

Attribute / PropertyTypeDefaultDescription
string[][]추천 후보 문자열 배열입니다. JavaScript 프로퍼티로 전달합니다.

객체·배열 값은 JavaScript 프로퍼티로 전달합니다.

booleanfalse처리 중임을 표시합니다.
number-1키보드 탐색 중인 후보의 인덱스입니다. Autocomplete가 관리합니다.
string''후보 필터링과 강조에 사용할 검색어입니다.
booleanfalse추천 목록을 비교할 때 대소문자를 구분합니다.
booleanfalse추천 후보에서 일치하는 부분을 강조합니다.

Events

EventDetailDescription
CustomEvent<number>이벤트의 detail에서 결과를 확인하세요.
CustomEvent<string>사용자가 항목을 선택했을 때 발생합니다.

Methods

MethodReturnsDescription
Promise<void>추천 옵션의 이벤트 연결을 초기화합니다. 일반 사용에서는 Autocomplete가 관리합니다.
Promise<void>현재 속성으로 컴포넌트를 다시 렌더링합니다. 일반 사용에서는 속성 변경이나 부모 컴포넌트가 갱신을 관리합니다.