Autocomplete

들어가기 전에

JQueru Autocomplete

<input type="text" id="input_auto"></input>
<script>
    $('#input_auto').autocomplete();
</script>

주요 데이터

var data = {};
$('#input_auto').autocomplete(data);

자동완성 데이터

var data = {
    source: ["사과", "바나나", "포도", ...]
}
var data = {
    source: [{ label: "사과", value: "apple" }, { label: "바나나", value: "banana" }, ...]
}
* `label` 은 검색 키워드, `value` 은 실제 입력되는 값
var data = {
    source: function(request, response) {
        // ajax 등
        // request.term === $("#input_auto").val()

        // 최종적으로 결과 데이터를 생산하기 위해 response() 수행
        // 위치 예시 : ajax success 등
        // response에는 JavaScript Array 타입이 인자로 들어감
        response();
        // ..
    } 
};
* ajax 예시
var data = {
    source: function(request, response) {
        $.ajax({
            type: "get",
            url: "test.com",
            data: { type: "json", value: request.term },
            dataType: "json",
            success: function(data) {
                // 결과 data를 가공한다
                var filteredArray = data.array.filter(..);
                // 가공한 데이터를 map 돌려서 라벨-밸류 쌍으로 뽑아낸다
                response(
                    $.map(filteredArray, function(item) {
                        return {
                            label: item.key,
                            value: item.value
                        };
                    })
                );
            }
        });
    } 
};