$('.find-football-location').each(function () { $(this).autocomplete({ create: function () { $('.ui-helper-hidden-accessible').remove(); }, source: function (request, response) { var _thisId = $('#' + $(this.element).prop('id')); var urlPath = window.location.protocol + '//' + window.location.hostname + '/api/findfootball/getpredictedresults?input=' + _thisId.val(); $.ajax({ url: urlPath, dataType: "json", data: { searchText: request.term }, success: function (data) { if (data.Predictions == null) { _thisId.closest('.autocomplete-group').find('.ui-autocomplete').empty().append('
  • No results found
  • ').show(); } else { response($.map(data.Predictions, function (item) { return { term: item.Text, label: item.Type, url: item.Url }; })); } }, complete: function (data) { _thisId.parent().toggleClass('ui-autocomplete-loading', !_thisId.parent().hasClass('ui-autocomplete-loading')); } }); }, minLength: 3, select: function (event, ui) { $(this).val(ui.item.term); if (ui.item.label !== 'Place') { return false; } else { event.preventDefault(); } }, search: function (event, ui) { var _thisId = $('#' + $(this).prop('id')); _thisId.parent().toggleClass('ui-autocomplete-loading', !_thisId.parent().hasClass('ui-autocomplete-loading')); }, open: function (event, ui) { var termTemplate = "%s"; var acData = $(this).data('ui-autocomplete'); acData.menu.element.find('a').each(function () { var searchMask = acData.term; var regEx = new RegExp(searchMask, "ig"); var me = $(this); var res = regEx.exec(me.text()); //var res = me.match(regEx); var styledTerm = termTemplate.replace('%s', res); var temp = me.text().replace(regEx, styledTerm); me.html(temp); }); }, focus: function (event, ui) { event.preventDefault(); }, appendTo: $(this).closest('.autocomplete-group').find('.autocomplete-group__results') }) .data("ui-autocomplete")._renderItem = function (ul, item) { var temp = $("
  • ") .addClass(item.label) .append("" + item.term + "") .appendTo(ul); return temp; }; });