【问题标题】:How to show default data when user clears input field in jQuery autocomplete当用户清除 jQuery 自动完成中的输入字段时如何显示默认数据
【发布时间】:2012-11-26 13:11:20
【问题描述】:

我正在使用 jquery-ui-autocomplete 插件,但对其进行了微调,以提供自动加载而不是自动完成的感觉。 我在输入字段下方的 div 中显示结果,而不是它的下拉视图。

我已将 minlength 设置为 1,以便在单击输入框时不会更改 div 中的默认数据。

但是一旦用户输入了一些东西,结果就会显示在 div 中,现在如果用户清除输入字段,它会继续显示最后的搜索结果。我想在这里显示一些在页面加载时显示的默认数据。 我该怎么做?

代码sn-p:

$("#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'));
};

【问题讨论】:

    标签: jquery autocomplete jquery-ui-autocomplete


    【解决方案1】:

    不清楚你想要的 div 是什么格式,但是你可以像下面这样创建一个事件:

    $("#search-help").keyup(function( ) {
           if (!this.value) { 
                  $('#MY_DIV').val("Default text");
           }
    });
    

    【讨论】:

    • 感谢 Mccannf 完美运行。没想到这一点真是太愚蠢了,我对自动完成如此着迷,以至于我只在其中寻找解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2012-06-08
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    相关资源
    最近更新 更多