What I want is to show 'Create New Contact' option always. Even if the typed text matches with elements in my array or NOT. I am able to achieve the first part, but when the typed text do not match with any items in the array, _renderMenu is not even called. How do I show one default option always whether or not the typed text matches anything in the source array.

In addition to that, The default item that I creating here -

ul.prepend('<li value="create-new-contact">Create New Contact</li>');

is giving me following error when I am taking my mouse over this item -

The simplest solution here is to inject the default value into the returned list of suggestions, then it can always be displayed no matter what the user types. This is much easier than trying to manipulate the generated HTML markup, which you were attempting.

2) Handling the "repsonse" event. http://api.jqueryui.com/autocomplete/#event-response - This gives you access to the list of returned responses just before they are displayed to the user (even if there are no matching responses found, this event will still fire). At this point you can easily add your default item to the array of responses.

Personally of those, for what you want to do I think option 2 is the simplest.

Email codedump link for Show one default option in Autocomplete Search