hkutluay
hkutluay

Reputation: 6944

jQuery UI Autocomplete get input element on source function

Is there any way to get input element on Autocomplete source function? $(this) not referring to input of autocomplete instance.

jsFiddle sample here.

<input type="text" data-code="foo" placeholder="type something ..." class="suggest" />
<input type="text" data-code="foo2" placeholder="type something ..." class="suggest" />

JavaScript

$(".suggest").autocomplete({
            delay: 100,
            source: function (request, response) {

                // get foo here,: $(this).data("code"); not working

                // Suggest URL
                var suggestURL = "http://suggestqueries.google.com/complete/search?client=chrome&q=%QUERY";
                suggestURL = suggestURL.replace('%QUERY', request.term);

                // JSONP Request
                $.ajax({
                    method: 'GET',
                    dataType: 'jsonp',
                    jsonpCallback: 'jsonCallback',
                    url: suggestURL
                })
                .success(function(data){
                    response(data[1]);
                });
            }
        });

Upvotes: 2

Views: 2669

Answers (1)

hkutluay
hkutluay

Reputation: 6944

this.element gets the current element on source function.

$(".suggest").autocomplete({
            delay: 100,
            source: function (request, response) {

                this.element.data("code"); 

                // Suggest URL
                var suggestURL = "http://suggestqueries.google.com/complete/search?client=chrome&q=%QUERY";
                suggestURL = suggestURL.replace('%QUERY', request.term);

                // JSONP Request
                $.ajax({
                    method: 'GET',
                    dataType: 'jsonp',
                    jsonpCallback: 'jsonCallback',
                    url: suggestURL
                })
                .success(function(data){
                    response(data[1]);
                });
            }
        });

Working sample here

Upvotes: 2

Related Questions