Reputation: 6944
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
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