1

我正在使用 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'));
};
4

1 回答 1

0

目前尚不清楚您想要在 div 中使用什么格式,但您可以创建如下所示的事件:

$("#search-help").keyup(function( ) {
       if (!this.value) { 
              $('#MY_DIV').val("Default text");
       }
});
于 2012-11-26T18:26:30.197 回答