Javascript Jquery自动完成无结果追加为下拉子问题
我有一个ASP.NETMVC3制作的网站,用户可以使用jQueryUIAutoComplete进行搜索,并从找到的结果中进行选择 我使用这个脚本来获得结果Javascript Jquery自动完成无结果追加为下拉子问题,javascript,jquery-ui,asp.net-mvc-3,jquery-ui-autocomplete,Javascript,Jquery Ui,Asp.net Mvc 3,Jquery Ui Autocomplete,我有一个ASP.NETMVC3制作的网站,用户可以使用jQueryUIAutoComplete进行搜索,并从找到的结果中进行选择 我使用这个脚本来获得结果 $(function () { function log(message) { } $("#cpu").autocomplete({ source: "/Search/",
$(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 for [search_term]</a>")
}
},
open: function (event, ui) {
var url = "<a href='/AdvancedSearch/[search_term]'>More results for [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);
};
});
但是,如果没有找到结果,我该如何显示?在本例中,我使用的是alert,我该如何使用文本搜索提前附加一个子项
.append("<a href='/AdvancedSearch/[search_term]'>More results for [search_term]</a>")
请帮助解决这个问题,谢谢我建议您使用jQuery自动完成事件
open: function (event, ui) {
search_term = event.target.value;
var d = $('.ui-autocomplete').append("<a href='/AdvancedSearch/[" + search_term + "]'>More results for [" + search_term + "]</a>")
我想这是有道理的
修改代码以重新创建与您的问题相同的内容。谢谢您的回复,好的,看起来不错。但是如果我想启动这个选项,它会导致没有结果。我试过用if!ui.content.length{var noResult=;ui.content.pushnoResult;}@ArbazAbid检查我的最新答案我知道这可能不像dd,但明智的做法。@ArbazAbid我很高兴能够帮助你:
response: function (event, ui) {
if (ui.content.length === 0) { //check for none results
search_term = event.target.value;
$(this).next('a').remove(); //Remove before you add
$(this).after("<a href='/AdvancedSearch/[" + search_term + "]'>More results for [" + search_term + "]</a>");
}
}