我使用的是jquery-ui-autocomplete插件,但稍微调整了一下,给人一种自动加载的感觉,而不是自动完成。我在下面的输入栏下面的div中显示结果,而不是它的下拉视图。
我已经将minlength设置为1,这样在输入框中单击时,它不会更改div中的默认数据。
但是一旦用户输入了内容,结果就会显示在div中,现在如果用户清除了输入字段,它就会继续显示最后的搜索结果。我想在这里显示一些在页面加载时显示的默认数据。我该怎么做呢?
代码片段:
$("#search-help").autocomplete({
source: function (request, response) {
var term = $.ui.autocomplete.escapeRegex(request.term)
, containsMatcherTitle = new RegExp(term, "i")
, containsTitle = $.grep(data, function(value) {
return containsMatcherTitle.test(value.value);
});
response((containsTitle.slice(0, 5));
},
focus: function( event, ui ) {
return false;
},
minLength: 3,
select: function(event, ui) {
return false;
},
search: function(event, ui) {
$("#MY_DIV ul").empty();
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.value + "</a><span>" + item.desc + "</span>" )
.appendTo($('#MY_DIV ul'));
};发布于 2012-11-27 02:26:30
目前还不清楚您希望在div中使用什么格式,但您可以创建如下所示的事件:
$("#search-help").keyup(function( ) {
if (!this.value) {
$('#MY_DIV').val("Default text");
}
});https://stackoverflow.com/questions/13565560
复制相似问题