javascript - Jquery autocomplete no result append as dropdown child issue -


i have website (cpusort.com) made in asp.net mvc3, user can search using jquery ui autocomplete , select found resutls.

i using script resutls

        $(function () {             function log(message) {             }             $("#cpu").autocomplete({                 source: "/search/",                 minlength: 1,                 response: function (event, ui) {                     if (ui.content.length === 0) {                         alert("no result found"); //.append("<a href='/advancedsearch/[search_term]'>more results [search_term]</a>")                     }                 },                 open: function (event, ui) {                     var url = "<a href='/advancedsearch/[search_term]'>more results [search_term]</a>";                     $("ul.ui-autocomplete.ui-menu").append(url);                 },                 select: function (event, ui) {                     $("#cpu").val(ui.item.title);                     $("#cpu-query").val(ui.item.query);                     $("#cpu-clockspeed").val(ui.item.clockspeed);                     $("#cpu-cores").val(ui.item.cores);                     $("#cpu-image").val(ui.item.cpuimage);                     return false;                 }             })     .data("ui-autocomplete")._renderitem = function (ul, item) {         return $("<li>")         .append("<a href='/cpu/" + item.query + "'><div style='width:100%'><span class='titlesearch' >" + item.title + "</span></div><div <div style='width:100%'><span class='titlesmallspan'>" + item.clockspeed + " ghz | " + item.cores + "</span></div></a>")         .appendto(ul);     };         }); 

but how can show if there no result found, , in case using alert, how can append single child text "search in advance"

.append("<a href='/advancedsearch/[search_term]'>more results [search_term]</a>") 

please figure out, thanks

i suggest make use of open event of jquery auto-complete

open: function (event, ui) {       search_term = event.target.value;       var d = $('.ui-autocomplete').append("<a href='/advancedsearch/[" + search_term + "]'>more results [" + search_term + "]</a>") 

}

this append html elements need @ end of options listed in auto-complete.

jsfiddle#1

hope can understand.


updates:

from comments, seems tried appending won't work open event of auto-complete.

instead should go response event of auto-complete.

why?

1) open event triggered when matching found , won't work when match not found.

2) whereas response event triggered in both cases(this can't used case#1) helpful case#2.

response: function (event, ui) {             if (ui.content.length === 0) {  //check none results                 search_term = event.target.value;                 $(this).next('a').remove(); //remove before add                 $(this).after("<a href='/advancedsearch/[" + search_term + "]'>more results [" + search_term + "]</a>");             }         } 

jsfiddle#2

well makes sense, think so.

modified code re-create equal question.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -