I am using JQuery 1.8.3 and JQuery UI 1.8.24.
This is the code, that works just fine:
$(function () {
$("#").autocomplete({
source: function (request, response) {
$.ajax({
url: '', type: "POST", dataType: "json",
data: { searchPattern: request.term },
cache: false,
success: function (data) {
response($.map(data, function (item) {
return { label: item.Label, value: item.Value, id: item.Id, description: item.Description }
}))
}
});
},
delay: 300,
minLength: 2,
autoFocus: true
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("li>/li>")
.data("ui-autocomplete-item", item)
.append("a>" + item.label + "br>div style=\"font-size:x-small;font-style:italic;\">" + item.description + "/div>/a>")
.appendTo(ul);
};
});
But if I add a second textbox to the HTML, copy the JavaScript above and change the selector and url (so in the end I have two autocomplete textboxes), then I get the following error for the second autocomplete:
TypeError: $(...).autocomplete(...).data(...) is undefined
With one autocomplete it works perfect, but with a second not I can't explain why. Does anyone can help me?
Thanks in advance!
Toby
EDIT:
I found the problem.
The JavaScript code is in an *.js file and the two textboxes are in two different *.thml files.
So there is only one textbox at a time and this is the problem.
Now I do the last part (with the data(...)) in the *.html file and it works fine:
$("#selector").autocomplete().data("autocomplete")._renderItem = renderItem;
Thank for your help!