1

I am using the jquery autocomplete plugin, but right now all it does is display a dropdown of rows that when clicked, injects the term into the input box.

What I want is for it to have a hyperlink, so when clicked, it redirects to the page.

Is it possible to return a more rich json request, that has other meta data like a url, image and would be displayed in the autocomplete box that displays?

I've seen this done on a site, but not sure if they had to modify the autocomplete plugin for it to work? i.e. returning a json response as oppose to just a list of text.

1 Answer 1

1

If you're talking about this plugin, the following should work:

Assuming your json result looks something like this:

[
  {
    name: 'Google',
    image: 'http://google.com/logo.png',
    href: 'http://google.com'
  },
  {
    name: 'Bing',
    image: 'http://bing.com/logo.png',
    href: 'http://bing.com/'
  }
  ...
]

You will need to pass in your own custom parsing function inside your options. This function needs to return an array of objects of the format: { data: object, value: string, result: string }

$('#myfield').autocomplete('/search', {

  parse: function(data) {
    return $.map(data, function(item) {
      return { data: item, value: item.name, result: item.href };
    });
  },

  formatItem: function(item) {
    return '<img src="' + item.image + '"/> ' + item.name;
  }

})
.result(function(event, item) {
  location.href = item.href;
});

There might be a better way to do the link, and I know I've seen other autocomplete/suggest type plugins that allow you to do this easier but I don't remember which ones. Hope this helps.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.